Blob Blame History Raw
From cd098b06db263cfb337d4b8eaf2724df66fff060 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Fri, 20 Nov 2020 14:00:36 -0500
Subject: [PATCH 1/9] Fix: libs, tools: Be consistent with GListPtr and
 xmlNodePtr in formatted output.

GListPtr should be removed from all the formatted output messages.  It
seems like a GLib type, but it's not.  So that's weird and we should
stop spreading uses of it around.

On the other hand, xmlNodePtr is a libxml type that we are already using
sporadically.  We should be more consistent in using it.
---
 lib/fencing/st_output.c     | 20 ++++++------
 lib/pacemaker/pcmk_output.c | 36 ++++++++++-----------
 lib/pengine/bundle.c        | 18 +++++------
 lib/pengine/clone.c         | 44 +++++++++++++-------------
 lib/pengine/group.c         | 28 ++++++++---------
 lib/pengine/native.c        | 20 ++++++------
 lib/pengine/pe_output.c     | 76 ++++++++++++++++++++++-----------------------
 tools/crm_resource_print.c  | 64 +++++++++++++++++++-------------------
 8 files changed, 153 insertions(+), 153 deletions(-)

diff --git a/lib/fencing/st_output.c b/lib/fencing/st_output.c
index 04f4b83..7c3ccef 100644
--- a/lib/fencing/st_output.c
+++ b/lib/fencing/st_output.c
@@ -30,11 +30,11 @@ time_t_string(time_t when) {
     return buf;
 }
 
-PCMK__OUTPUT_ARGS("failed-fencing-history", "stonith_history_t *", "GListPtr", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("failed-fencing-history", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__failed_history(pcmk__output_t *out, va_list args) {
     stonith_history_t *history = va_arg(args, stonith_history_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
     gboolean full_history = va_arg(args, gboolean);
     gboolean print_spacer = va_arg(args, gboolean);
 
@@ -58,11 +58,11 @@ stonith__failed_history(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("fencing-history", "stonith_history_t *", "GListPtr", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("fencing-history", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__history(pcmk__output_t *out, va_list args) {
     stonith_history_t *history = va_arg(args, stonith_history_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
     gboolean full_history = va_arg(args, gboolean);
     gboolean print_spacer = va_arg(args, gboolean);
 
@@ -84,12 +84,12 @@ stonith__history(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("full-fencing-history", "crm_exit_t", "stonith_history_t *", "GListPtr", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("full-fencing-history", "crm_exit_t", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__full_history(pcmk__output_t *out, va_list args) {
     crm_exit_t history_rc G_GNUC_UNUSED = va_arg(args, crm_exit_t);
     stonith_history_t *history = va_arg(args, stonith_history_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
     gboolean full_history = va_arg(args, gboolean);
     gboolean print_spacer = va_arg(args, gboolean);
 
@@ -109,12 +109,12 @@ stonith__full_history(pcmk__output_t *out, va_list args) {
     return rc;
 }
  
-PCMK__OUTPUT_ARGS("full-fencing-history", "crm_exit_t", "stonith_history_t *", "GListPtr", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("full-fencing-history", "crm_exit_t", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__full_history_xml(pcmk__output_t *out, va_list args) {
     crm_exit_t history_rc = va_arg(args, crm_exit_t);
     stonith_history_t *history = va_arg(args, stonith_history_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
     gboolean full_history = va_arg(args, gboolean);
     gboolean print_spacer G_GNUC_UNUSED = va_arg(args, gboolean);
 
@@ -198,11 +198,11 @@ stonith__last_fenced_xml(pcmk__output_t *out, va_list args) {
     }
 }
 
-PCMK__OUTPUT_ARGS("pending-fencing-actions", "stonith_history_t *", "GListPtr", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("pending-fencing-actions", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__pending_actions(pcmk__output_t *out, va_list args) {
     stonith_history_t *history = va_arg(args, stonith_history_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
     gboolean full_history = va_arg(args, gboolean);
     gboolean print_spacer = va_arg(args, gboolean);
 
diff --git a/lib/pacemaker/pcmk_output.c b/lib/pacemaker/pcmk_output.c
index 74a7c59..a0b12b9 100644
--- a/lib/pacemaker/pcmk_output.c
+++ b/lib/pacemaker/pcmk_output.c
@@ -53,8 +53,8 @@ static int colocations_list(pcmk__output_t *out, va_list args) {
     gboolean dependents = va_arg(args, gboolean);
     gboolean recursive = va_arg(args, gboolean);
 
-    GListPtr lpc = NULL;
-    GListPtr list = rsc->rsc_cons;
+    GList *lpc = NULL;
+    GList *list = rsc->rsc_cons;
     bool printed_header = false;
 
     if (dependents) {
@@ -133,8 +133,8 @@ static int colocations_list_xml(pcmk__output_t *out, va_list args) {
     gboolean dependents = va_arg(args, gboolean);
     gboolean recursive = va_arg(args, gboolean);
 
-    GListPtr lpc = NULL;
-    GListPtr list = rsc->rsc_cons;
+    GList *lpc = NULL;
+    GList *list = rsc->rsc_cons;
     bool printed_header = false;
 
     if (dependents) {
@@ -220,15 +220,15 @@ PCMK__OUTPUT_ARGS("locations-list", "pe_resource_t *")
 static int locations_list(pcmk__output_t *out, va_list args) {
     pe_resource_t *rsc G_GNUC_UNUSED = va_arg(args, pe_resource_t *);
 
-    GListPtr lpc = NULL;
-    GListPtr list = rsc->rsc_location;
+    GList *lpc = NULL;
+    GList *list = rsc->rsc_location;
 
     out->begin_list(out, NULL, NULL, "Locations");
 
     for (lpc = list; lpc != NULL; lpc = lpc->next) {
         pe__location_t *cons = lpc->data;
 
-        GListPtr lpc2 = NULL;
+        GList *lpc2 = NULL;
 
         for (lpc2 = cons->node_list_rh; lpc2 != NULL; lpc2 = lpc2->next) {
             pe_node_t *node = (pe_node_t *) lpc2->data;
@@ -249,15 +249,15 @@ PCMK__OUTPUT_ARGS("locations-list", "pe_resource_t *")
 static int locations_list_xml(pcmk__output_t *out, va_list args) {
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
 
-    GListPtr lpc = NULL;
-    GListPtr list = rsc->rsc_location;
+    GList *lpc = NULL;
+    GList *list = rsc->rsc_location;
 
     pcmk__output_xml_create_parent(out, "locations", NULL);
 
     for (lpc = list; lpc != NULL; lpc = lpc->next) {
         pe__location_t *cons = lpc->data;
 
-        GListPtr lpc2 = NULL;
+        GList *lpc2 = NULL;
 
         for (lpc2 = cons->node_list_rh; lpc2 != NULL; lpc2 = lpc2->next) {
             pe_node_t *node = (pe_node_t *) lpc2->data;
@@ -284,9 +284,9 @@ stacks_and_constraints(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set G_GNUC_UNUSED = va_arg(args, pe_working_set_t *);
     gboolean recursive G_GNUC_UNUSED = va_arg(args, gboolean);
 
-    GListPtr lpc = NULL;
-    xmlNode *cib_constraints = get_object_root(XML_CIB_TAG_CONSTRAINTS,
-                                               data_set->input);
+    GList *lpc = NULL;
+    xmlNodePtr cib_constraints = get_object_root(XML_CIB_TAG_CONSTRAINTS,
+                                                 data_set->input);
 
     unpack_constraints(cib_constraints, data_set);
 
@@ -322,9 +322,9 @@ stacks_and_constraints_xml(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
     gboolean recursive = va_arg(args, gboolean);
 
-    GListPtr lpc = NULL;
-    xmlNode *cib_constraints = get_object_root(XML_CIB_TAG_CONSTRAINTS,
-                                               data_set->input);
+    GList *lpc = NULL;
+    xmlNodePtr cib_constraints = get_object_root(XML_CIB_TAG_CONSTRAINTS,
+                                                 data_set->input);
 
     unpack_constraints(cib_constraints, data_set);
 
@@ -455,11 +455,11 @@ dc_xml(pcmk__output_t *out, va_list args)
 }
 
 
-PCMK__OUTPUT_ARGS("crmadmin-node-list", "pcmk__output_t *", "xmlNode *")
+PCMK__OUTPUT_ARGS("crmadmin-node-list", "pcmk__output_t *", "xmlNodePtr")
 static int
 crmadmin_node_list(pcmk__output_t *out, va_list args)
 {
-    xmlNode *xml_node = va_arg(args, xmlNode *);
+    xmlNodePtr xml_node = va_arg(args, xmlNodePtr);
     int found = 0;
     xmlNode *node = NULL;
     xmlNode *nodes = get_object_root(XML_CIB_TAG_NODES, xml_node);
diff --git a/lib/pengine/bundle.c b/lib/pengine/bundle.c
index 543f5dc..7a175a5 100644
--- a/lib/pengine/bundle.c
+++ b/lib/pengine/bundle.c
@@ -1485,14 +1485,14 @@ bundle_print_xml(pe_resource_t *rsc, const char *pre_text, long options,
     free(child_text);
 }
 
-PCMK__OUTPUT_ARGS("bundle", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("bundle", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__bundle_xml(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     pe__bundle_variant_data_t *bundle_data = NULL;
     int rc = pcmk_rc_no_output;
@@ -1608,14 +1608,14 @@ pe__bundle_replica_output_html(pcmk__output_t *out, pe__bundle_replica_t *replic
     pe__common_output_html(out, rsc, buffer, node, options);
 }
 
-PCMK__OUTPUT_ARGS("bundle", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("bundle", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__bundle_html(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     pe__bundle_variant_data_t *bundle_data = NULL;
     char buffer[LINE_MAX];
@@ -1750,14 +1750,14 @@ pe__bundle_replica_output_text(pcmk__output_t *out, pe__bundle_replica_t *replic
     pe__common_output_text(out, rsc, buffer, node, options);
 }
 
-PCMK__OUTPUT_ARGS("bundle", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("bundle", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__bundle_text(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     pe__bundle_variant_data_t *bundle_data = NULL;
     int rc = pcmk_rc_no_output;
diff --git a/lib/pengine/clone.c b/lib/pengine/clone.c
index 0708fdc..9b48d01 100644
--- a/lib/pengine/clone.c
+++ b/lib/pengine/clone.c
@@ -577,16 +577,16 @@ clone_print(pe_resource_t * rsc, const char *pre_text, long options, void *print
     free(child_text);
 }
 
-PCMK__OUTPUT_ARGS("clone", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("clone", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__clone_xml(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
-    GListPtr gIter = rsc->children;
+    GList *gIter = rsc->children;
     int rc = pcmk_rc_no_output;
     gboolean printed_header = FALSE;
     gboolean print_everything = TRUE;
@@ -635,23 +635,23 @@ pe__clone_xml(pcmk__output_t *out, va_list args)
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("clone", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("clone", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__clone_html(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     char *list_text = NULL;
     char *stopped_list = NULL;
     size_t list_text_len = 0;
     size_t stopped_list_len = 0;
 
-    GListPtr master_list = NULL;
-    GListPtr started_list = NULL;
-    GListPtr gIter = rsc->children;
+    GList *master_list = NULL;
+    GList *started_list = NULL;
+    GList *gIter = rsc->children;
 
     clone_variant_data_t *clone_data = NULL;
     int active_instances = 0;
@@ -751,7 +751,7 @@ pe__clone_html(pcmk__output_t *out, va_list args)
         }
 
         if (print_full) {
-            GListPtr all = NULL;
+            GList *all = NULL;
 
             /* Print every resource that's a child of this clone. */
             all = g_list_prepend(all, strdup("*"));
@@ -832,8 +832,8 @@ pe__clone_html(pcmk__output_t *out, va_list args)
         if (!pcmk_is_set(rsc->flags, pe_rsc_unique)
             && (clone_data->clone_max > active_instances)) {
 
-            GListPtr nIter;
-            GListPtr list = g_hash_table_get_values(rsc->allowed_nodes);
+            GList *nIter;
+            GList *list = g_hash_table_get_values(rsc->allowed_nodes);
 
             /* Custom stopped list for non-unique clones */
             free(stopped_list);
@@ -872,23 +872,23 @@ pe__clone_html(pcmk__output_t *out, va_list args)
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("clone", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("clone", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__clone_text(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     char *list_text = NULL;
     char *stopped_list = NULL;
     size_t list_text_len = 0;
     size_t stopped_list_len = 0;
 
-    GListPtr master_list = NULL;
-    GListPtr started_list = NULL;
-    GListPtr gIter = rsc->children;
+    GList *master_list = NULL;
+    GList *started_list = NULL;
+    GList *gIter = rsc->children;
 
     clone_variant_data_t *clone_data = NULL;
     int active_instances = 0;
@@ -988,7 +988,7 @@ pe__clone_text(pcmk__output_t *out, va_list args)
         }
 
         if (print_full) {
-            GListPtr all = NULL;
+            GList *all = NULL;
 
             /* Print every resource that's a child of this clone. */
             all = g_list_prepend(all, strdup("*"));
@@ -1067,8 +1067,8 @@ pe__clone_text(pcmk__output_t *out, va_list args)
         if (!pcmk_is_set(rsc->flags, pe_rsc_unique)
             && (clone_data->clone_max > active_instances)) {
 
-            GListPtr nIter;
-            GListPtr list = g_hash_table_get_values(rsc->allowed_nodes);
+            GList *nIter;
+            GList *list = g_hash_table_get_values(rsc->allowed_nodes);
 
             /* Custom stopped list for non-unique clones */
             free(stopped_list);
diff --git a/lib/pengine/group.c b/lib/pengine/group.c
index 33aa177..58c9f7c 100644
--- a/lib/pengine/group.c
+++ b/lib/pengine/group.c
@@ -180,16 +180,16 @@ group_print(pe_resource_t * rsc, const char *pre_text, long options, void *print
     free(child_text);
 }
 
-PCMK__OUTPUT_ARGS("group", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("group", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__group_xml(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
-    GListPtr gIter = rsc->children;
+    GList *gIter = rsc->children;
     char *count = crm_itoa(g_list_length(gIter));
 
     int rc = pcmk_rc_no_output;
@@ -231,14 +231,14 @@ pe__group_xml(pcmk__output_t *out, va_list args)
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("group", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("group", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__group_html(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     int rc = pcmk_rc_no_output;
     gboolean print_everything = TRUE;
@@ -251,7 +251,7 @@ pe__group_html(pcmk__output_t *out, va_list args)
                        (strstr(rsc->id, ":") != NULL && pcmk__str_in_list(only_rsc, rsc->id));
 
     if (options & pe_print_brief) {
-        GListPtr rscs = pe__filter_rsc_list(rsc->children, only_rsc);
+        GList *rscs = pe__filter_rsc_list(rsc->children, only_rsc);
 
         if (rscs != NULL) {
             out->begin_list(out, NULL, NULL, "Resource Group: %s%s%s", rsc->id,
@@ -265,7 +265,7 @@ pe__group_html(pcmk__output_t *out, va_list args)
         }
 
     } else {
-        for (GListPtr gIter = rsc->children; gIter; gIter = gIter->next) {
+        for (GList *gIter = rsc->children; gIter; gIter = gIter->next) {
             pe_resource_t *child_rsc = (pe_resource_t *) gIter->data;
 
             if (child_rsc->fns->is_filtered(child_rsc, only_rsc, print_everything)) {
@@ -286,14 +286,14 @@ pe__group_html(pcmk__output_t *out, va_list args)
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("group", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("group", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__group_text(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     int rc = pcmk_rc_no_output;
     gboolean print_everything = TRUE;
@@ -306,7 +306,7 @@ pe__group_text(pcmk__output_t *out, va_list args)
                        (strstr(rsc->id, ":") != NULL && pcmk__str_in_list(only_rsc, rsc->id));
 
     if (options & pe_print_brief) {
-        GListPtr rscs = pe__filter_rsc_list(rsc->children, only_rsc);
+        GList *rscs = pe__filter_rsc_list(rsc->children, only_rsc);
 
         if (rscs != NULL) {
             out->begin_list(out, NULL, NULL, "Resource Group: %s%s%s", rsc->id,
@@ -320,7 +320,7 @@ pe__group_text(pcmk__output_t *out, va_list args)
         }
 
     } else {
-        for (GListPtr gIter = rsc->children; gIter; gIter = gIter->next) {
+        for (GList *gIter = rsc->children; gIter; gIter = gIter->next) {
             pe_resource_t *child_rsc = (pe_resource_t *) gIter->data;
 
             if (child_rsc->fns->is_filtered(child_rsc, only_rsc, print_everything)) {
diff --git a/lib/pengine/native.c b/lib/pengine/native.c
index 38e9350..6f27d7b 100644
--- a/lib/pengine/native.c
+++ b/lib/pengine/native.c
@@ -920,14 +920,14 @@ native_print(pe_resource_t * rsc, const char *pre_text, long options, void *prin
     common_print(rsc, pre_text, rsc_printable_id(rsc), node, options, print_data);
 }
 
-PCMK__OUTPUT_ARGS("primitive", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("primitive", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__resource_xml(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node G_GNUC_UNUSED = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node G_GNUC_UNUSED = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS);
     const char *prov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER);
@@ -977,7 +977,7 @@ pe__resource_xml(pcmk__output_t *out, va_list args)
     CRM_ASSERT(rc == pcmk_rc_ok);
 
     if (rsc->running_on != NULL) {
-        GListPtr gIter = rsc->running_on;
+        GList *gIter = rsc->running_on;
 
         for (; gIter != NULL; gIter = gIter->next) {
             pe_node_t *node = (pe_node_t *) gIter->data;
@@ -994,14 +994,14 @@ pe__resource_xml(pcmk__output_t *out, va_list args)
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("primitive", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("primitive", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__resource_html(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node G_GNUC_UNUSED = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node G_GNUC_UNUSED = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     pe_node_t *node = pe__current_node(rsc);
 
@@ -1018,14 +1018,14 @@ pe__resource_html(pcmk__output_t *out, va_list args)
     return pe__common_output_html(out, rsc, rsc_printable_id(rsc), node, options);
 }
 
-PCMK__OUTPUT_ARGS("primitive", "unsigned int", "pe_resource_t *", "GListPtr", "GListPtr")
+PCMK__OUTPUT_ARGS("primitive", "unsigned int", "pe_resource_t *", "GList *", "GList *")
 int
 pe__resource_text(pcmk__output_t *out, va_list args)
 {
     unsigned int options = va_arg(args, unsigned int);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
-    GListPtr only_node G_GNUC_UNUSED = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node G_GNUC_UNUSED = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     pe_node_t *node = pe__current_node(rsc);
 
diff --git a/lib/pengine/pe_output.c b/lib/pengine/pe_output.c
index ecb5c2c..3d2fc24 100644
--- a/lib/pengine/pe_output.c
+++ b/lib/pengine/pe_output.c
@@ -1013,7 +1013,7 @@ pe__failed_action_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node", "pe_node_t *", "unsigned int", "gboolean", "const char *",
-                  "gboolean", "gboolean", "gboolean", "GListPtr", "GListPtr")
+                  "gboolean", "gboolean", "gboolean", "GList *", "GList *")
 int
 pe__node_html(pcmk__output_t *out, va_list args) {
     pe_node_t *node = va_arg(args, pe_node_t *);
@@ -1023,8 +1023,8 @@ pe__node_html(pcmk__output_t *out, va_list args) {
     gboolean print_clone_detail = va_arg(args, gboolean);
     gboolean print_brief = va_arg(args, gboolean);
     gboolean group_by_node = va_arg(args, gboolean);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     char *node_name = pe__node_display_name(node, print_clone_detail);
     char *buf = crm_strdup_printf("Node: %s", node_name);
@@ -1052,7 +1052,7 @@ pe__node_html(pcmk__output_t *out, va_list args) {
             pcmk_create_html_node(item_node, "span", NULL, "offline", " OFFLINE");
         }
         if (print_brief && group_by_node) {
-            GListPtr rscs = pe__filter_rsc_list(node->details->running_rsc, only_rsc);
+            GList *rscs = pe__filter_rsc_list(node->details->running_rsc, only_rsc);
 
             if (rscs != NULL) {
                 out->begin_list(out, NULL, NULL, NULL);
@@ -1061,7 +1061,7 @@ pe__node_html(pcmk__output_t *out, va_list args) {
             }
 
         } else if (group_by_node) {
-            GListPtr lpc2 = NULL;
+            GList *lpc2 = NULL;
 
             out->begin_list(out, NULL, NULL, NULL);
             for (lpc2 = node->details->running_rsc; lpc2 != NULL; lpc2 = lpc2->next) {
@@ -1081,7 +1081,7 @@ pe__node_html(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node", "pe_node_t *", "unsigned int", "gboolean", "const char *",
-                  "gboolean", "gboolean", "gboolean", "GListPtr", "GListPtr")
+                  "gboolean", "gboolean", "gboolean", "GList *", "GList *")
 int
 pe__node_text(pcmk__output_t *out, va_list args) {
     pe_node_t *node = va_arg(args, pe_node_t *);
@@ -1091,8 +1091,8 @@ pe__node_text(pcmk__output_t *out, va_list args) {
     gboolean print_clone_detail = va_arg(args, gboolean);
     gboolean print_brief = va_arg(args, gboolean);
     gboolean group_by_node = va_arg(args, gboolean);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     if (full) {
         char *node_name = pe__node_display_name(node, print_clone_detail);
@@ -1110,7 +1110,7 @@ pe__node_text(pcmk__output_t *out, va_list args) {
         /* If we're grouping by node, print its resources */
         if (group_by_node) {
             if (print_brief) {
-                GListPtr rscs = pe__filter_rsc_list(node->details->running_rsc, only_rsc);
+                GList *rscs = pe__filter_rsc_list(node->details->running_rsc, only_rsc);
 
                 if (rscs != NULL) {
                     out->begin_list(out, NULL, NULL, "%s", buf);
@@ -1123,7 +1123,7 @@ pe__node_text(pcmk__output_t *out, va_list args) {
                 }
 
             } else {
-                GListPtr gIter2 = NULL;
+                GList *gIter2 = NULL;
 
                 out->begin_list(out, NULL, NULL, "%s", buf);
                 out->begin_list(out, NULL, NULL, "Resources");
@@ -1151,7 +1151,7 @@ pe__node_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node", "pe_node_t *", "unsigned int", "gboolean", "const char *",
-                  "gboolean", "gboolean", "gboolean", "GListPtr", "GListPtr")
+                  "gboolean", "gboolean", "gboolean", "GList *", "GList *")
 int
 pe__node_xml(pcmk__output_t *out, va_list args) {
     pe_node_t *node = va_arg(args, pe_node_t *);
@@ -1161,8 +1161,8 @@ pe__node_xml(pcmk__output_t *out, va_list args) {
     gboolean print_clone_detail G_GNUC_UNUSED = va_arg(args, gboolean);
     gboolean print_brief G_GNUC_UNUSED = va_arg(args, gboolean);
     gboolean group_by_node = va_arg(args, gboolean);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
 
     if (full) {
         const char *node_type = "unknown";
@@ -1200,7 +1200,7 @@ pe__node_xml(pcmk__output_t *out, va_list args) {
         }
 
         if (group_by_node) {
-            GListPtr lpc = NULL;
+            GList *lpc = NULL;
 
             for (lpc = node->details->running_rsc; lpc != NULL; lpc = lpc->next) {
                 pe_resource_t *rsc = (pe_resource_t *) lpc->data;
@@ -1401,12 +1401,12 @@ pe__node_attribute_xml(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("node-list", "GListPtr", "GListPtr", "GListPtr", "unsigned int", "gboolean", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("node-list", "GList *", "GList *", "GList *", "unsigned int", "gboolean", "gboolean", "gboolean")
 int
 pe__node_list_html(pcmk__output_t *out, va_list args) {
-    GListPtr nodes = va_arg(args, GListPtr);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *nodes = va_arg(args, GList *);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
     unsigned int print_opts = va_arg(args, unsigned int);
     gboolean print_clone_detail = va_arg(args, gboolean);
     gboolean print_brief = va_arg(args, gboolean);
@@ -1414,7 +1414,7 @@ pe__node_list_html(pcmk__output_t *out, va_list args) {
 
     int rc = pcmk_rc_no_output;
 
-    for (GListPtr gIter = nodes; gIter != NULL; gIter = gIter->next) {
+    for (GList *gIter = nodes; gIter != NULL; gIter = gIter->next) {
         pe_node_t *node = (pe_node_t *) gIter->data;
 
         if (!pcmk__str_in_list(only_node, node->details->uname)) {
@@ -1431,12 +1431,12 @@ pe__node_list_html(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("node-list", "GListPtr", "GListPtr", "GListPtr", "unsigned int", "gboolean", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("node-list", "GList *", "GList *", "GList *", "unsigned int", "gboolean", "gboolean", "gboolean")
 int
 pe__node_list_text(pcmk__output_t *out, va_list args) {
-    GListPtr nodes = va_arg(args, GListPtr);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *nodes = va_arg(args, GList *);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
     unsigned int print_opts = va_arg(args, unsigned int);
     gboolean print_clone_detail = va_arg(args, gboolean);
     gboolean print_brief = va_arg(args, gboolean);
@@ -1457,7 +1457,7 @@ pe__node_list_text(pcmk__output_t *out, va_list args) {
 
     int rc = pcmk_rc_no_output;
 
-    for (GListPtr gIter = nodes; gIter != NULL; gIter = gIter->next) {
+    for (GList *gIter = nodes; gIter != NULL; gIter = gIter->next) {
         pe_node_t *node = (pe_node_t *) gIter->data;
         const char *node_mode = NULL;
         char *node_name = pe__node_display_name(node, print_clone_detail);
@@ -1570,19 +1570,19 @@ pe__node_list_text(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("node-list", "GListPtr", "GListPtr", "GListPtr", "unsigned int", "gboolean", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("node-list", "GList *", "GList *", "GList *", "unsigned int", "gboolean", "gboolean", "gboolean")
 int
 pe__node_list_xml(pcmk__output_t *out, va_list args) {
-    GListPtr nodes = va_arg(args, GListPtr);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *nodes = va_arg(args, GList *);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
     unsigned int print_opts = va_arg(args, unsigned int);
     gboolean print_clone_detail = va_arg(args, gboolean);
     gboolean print_brief = va_arg(args, gboolean);
     gboolean group_by_node = va_arg(args, gboolean);
 
     out->begin_list(out, NULL, NULL, "nodes");
-    for (GListPtr gIter = nodes; gIter != NULL; gIter = gIter->next) {
+    for (GList *gIter = nodes; gIter != NULL; gIter = gIter->next) {
         pe_node_t *node = (pe_node_t *) gIter->data;
 
         if (!pcmk__str_in_list(only_node, node->details->uname)) {
@@ -1597,10 +1597,10 @@ pe__node_list_xml(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("op-history", "struct xmlNode *", "const char *", "const char *", "int", "gboolean")
+PCMK__OUTPUT_ARGS("op-history", "xmlNodePtr", "const char *", "const char *", "int", "gboolean")
 int
 pe__op_history_text(pcmk__output_t *out, va_list args) {
-    xmlNode *xml_op = va_arg(args, xmlNode *);
+    xmlNodePtr xml_op = va_arg(args, xmlNodePtr);
     const char *task = va_arg(args, const char *);
     const char *interval_ms_s = va_arg(args, const char *);
     int rc = va_arg(args, int);
@@ -1614,10 +1614,10 @@ pe__op_history_text(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("op-history", "struct xmlNode *", "const char *", "const char *", "int", "gboolean")
+PCMK__OUTPUT_ARGS("op-history", "xmlNodePtr", "const char *", "const char *", "int", "gboolean")
 int
 pe__op_history_xml(pcmk__output_t *out, va_list args) {
-    xmlNode *xml_op = va_arg(args, xmlNode *);
+    xmlNodePtr xml_op = va_arg(args, xmlNodePtr);
     const char *task = va_arg(args, const char *);
     const char *interval_ms_s = va_arg(args, const char *);
     int rc = va_arg(args, int);
@@ -1760,7 +1760,7 @@ pe__resource_history_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("resource-list", "pe_working_set_t *", "unsigned int", "gboolean",
-                  "gboolean", "gboolean", "gboolean", "GListPtr", "GListPtr", "gboolean")
+                  "gboolean", "gboolean", "gboolean", "GList *", "GList *", "gboolean")
 int
 pe__resource_list(pcmk__output_t *out, va_list args)
 {
@@ -1770,11 +1770,11 @@ pe__resource_list(pcmk__output_t *out, va_list args)
     gboolean inactive_resources = va_arg(args, gboolean);
     gboolean brief_output = va_arg(args, gboolean);
     gboolean print_summary = va_arg(args, gboolean);
-    GListPtr only_node = va_arg(args, GListPtr);
-    GListPtr only_rsc = va_arg(args, GListPtr);
+    GList *only_node = va_arg(args, GList *);
+    GList *only_rsc = va_arg(args, GList *);
     gboolean print_spacer = va_arg(args, gboolean);
 
-    GListPtr rsc_iter;
+    GList *rsc_iter;
     int rc = pcmk_rc_no_output;
 
     /* If we already showed active resources by node, and
@@ -1798,7 +1798,7 @@ pe__resource_list(pcmk__output_t *out, va_list args)
     /* If we haven't already printed resources grouped by node,
      * and brief output was requested, print resource summary */
     if (brief_output && !group_by_node) {
-        GListPtr rscs = pe__filter_rsc_list(data_set->resources, only_rsc);
+        GList *rscs = pe__filter_rsc_list(data_set->resources, only_rsc);
 
         pe__rscs_brief_output(out, rscs, print_opts, inactive_resources);
         g_list_free(rscs);
diff --git a/tools/crm_resource_print.c b/tools/crm_resource_print.c
index cb06879..4cb78b5 100644
--- a/tools/crm_resource_print.c
+++ b/tools/crm_resource_print.c
@@ -247,9 +247,9 @@ resource_check_xml(pcmk__output_t *out, va_list args) {
     pe_resource_t *parent = uber_parent(checks->rsc);
     int rc = pcmk_rc_no_output;
 
-    xmlNode *node = pcmk__output_create_xml_node(out, "check",
-                                                 "id", parent->id,
-                                                 NULL);
+    xmlNodePtr node = pcmk__output_create_xml_node(out, "check",
+                                                   "id", parent->id,
+                                                   NULL);
 
     if (pcmk_is_set(checks->flags, rsc_remain_stopped)) {
         crm_xml_add(node, "remain_stopped", "true");
@@ -270,11 +270,11 @@ resource_check_xml(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("resource-search", "GListPtr", "pe_resource_t *", "gchar *")
+PCMK__OUTPUT_ARGS("resource-search", "GList *", "pe_resource_t *", "gchar *")
 static int
 resource_search_default(pcmk__output_t *out, va_list args)
 {
-    GListPtr nodes = va_arg(args, GListPtr);
+    GList *nodes = va_arg(args, GList *);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     gchar *requested_name = va_arg(args, gchar *);
 
@@ -286,7 +286,7 @@ resource_search_default(pcmk__output_t *out, va_list args)
         return rc;
     }
 
-    for (GListPtr lpc = nodes; lpc != NULL; lpc = lpc->next) {
+    for (GList *lpc = nodes; lpc != NULL; lpc = lpc->next) {
         pe_node_t *node = (pe_node_t *) lpc->data;
 
         if (!printed) {
@@ -316,11 +316,11 @@ resource_search_default(pcmk__output_t *out, va_list args)
 }
 
 
-PCMK__OUTPUT_ARGS("resource-search", "GListPtr", "pe_resource_t *", "gchar *")
+PCMK__OUTPUT_ARGS("resource-search", "GList *", "pe_resource_t *", "gchar *")
 static int
 resource_search_xml(pcmk__output_t *out, va_list args)
 {
-    GListPtr nodes = va_arg(args, GListPtr);
+    GList *nodes = va_arg(args, GList *);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     gchar *requested_name = va_arg(args, gchar *);
 
@@ -328,9 +328,9 @@ resource_search_xml(pcmk__output_t *out, va_list args)
                                    "resource", requested_name,
                                    NULL);
 
-    for (GListPtr lpc = nodes; lpc != NULL; lpc = lpc->next) {
+    for (GList *lpc = nodes; lpc != NULL; lpc = lpc->next) {
         pe_node_t *node = (pe_node_t *) lpc->data;
-        xmlNode *sub_node = pcmk__output_create_xml_text_node(out, "node", node->details->uname);
+        xmlNodePtr sub_node = pcmk__output_create_xml_text_node(out, "node", node->details->uname);
 
         if (!pe_rsc_is_clone(rsc) && rsc->fns->state(rsc, TRUE) == RSC_ROLE_MASTER) {
             crm_xml_add(sub_node, "state", "promoted");
@@ -340,13 +340,13 @@ resource_search_xml(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("resource-why", "cib_t *", "GListPtr", "pe_resource_t *",
+PCMK__OUTPUT_ARGS("resource-why", "cib_t *", "GList *", "pe_resource_t *",
                   "pe_node_t *")
 static int
 resource_why_default(pcmk__output_t *out, va_list args)
 {
     cib_t *cib_conn = va_arg(args, cib_t *);
-    GListPtr resources = va_arg(args, GListPtr);
+    GList *resources = va_arg(args, GList *);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     pe_node_t *node = va_arg(args, pe_node_t *);
 
@@ -355,8 +355,8 @@ resource_why_default(pcmk__output_t *out, va_list args)
     out->begin_list(out, NULL, NULL, "Resource Reasons");
 
     if ((rsc == NULL) && (host_uname == NULL)) {
-        GListPtr lpc = NULL;
-        GListPtr hosts = NULL;
+        GList *lpc = NULL;
+        GList *hosts = NULL;
 
         for (lpc = resources; lpc != NULL; lpc = lpc->next) {
             pe_resource_t *rsc = (pe_resource_t *) lpc->data;
@@ -386,10 +386,10 @@ resource_why_default(pcmk__output_t *out, va_list args)
 
     } else if ((rsc == NULL) && (host_uname != NULL)) {
         const char* host_uname =  node->details->uname;
-        GListPtr allResources = node->details->allocated_rsc;
-        GListPtr activeResources = node->details->running_rsc;
-        GListPtr unactiveResources = pcmk__subtract_lists(allResources, activeResources, (GCompareFunc) strcmp);
-        GListPtr lpc = NULL;
+        GList *allResources = node->details->allocated_rsc;
+        GList *activeResources = node->details->running_rsc;
+        GList *unactiveResources = pcmk__subtract_lists(allResources, activeResources, (GCompareFunc) strcmp);
+        GList *lpc = NULL;
 
         for (lpc = activeResources; lpc != NULL; lpc = lpc->next) {
             pe_resource_t *rsc = (pe_resource_t *) lpc->data;
@@ -410,7 +410,7 @@ resource_why_default(pcmk__output_t *out, va_list args)
         g_list_free(unactiveResources);
 
     } else if ((rsc != NULL) && (host_uname == NULL)) {
-        GListPtr hosts = NULL;
+        GList *hosts = NULL;
 
         rsc->fns->location(rsc, &hosts, TRUE);
         out->list_item(out, "reason", "Resource %s is %srunning",
@@ -423,23 +423,23 @@ resource_why_default(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("resource-why", "cib_t *", "GListPtr", "pe_resource_t *",
+PCMK__OUTPUT_ARGS("resource-why", "cib_t *", "GList *", "pe_resource_t *",
                   "pe_node_t *")
 static int
 resource_why_xml(pcmk__output_t *out, va_list args)
 {
     cib_t *cib_conn = va_arg(args, cib_t *);
-    GListPtr resources = va_arg(args, GListPtr);
+    GList *resources = va_arg(args, GList *);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     pe_node_t *node = va_arg(args, pe_node_t *);
 
     const char *host_uname = (node == NULL)? NULL : node->details->uname;
 
-    xmlNode *xml_node = pcmk__output_xml_create_parent(out, "reason", NULL);
+    xmlNodePtr xml_node = pcmk__output_xml_create_parent(out, "reason", NULL);
 
     if ((rsc == NULL) && (host_uname == NULL)) {
-        GListPtr lpc = NULL;
-        GListPtr hosts = NULL;
+        GList *lpc = NULL;
+        GList *hosts = NULL;
 
         pcmk__output_xml_create_parent(out, "resources", NULL);
 
@@ -470,10 +470,10 @@ resource_why_xml(pcmk__output_t *out, va_list args)
 
     } else if ((rsc == NULL) && (host_uname != NULL)) {
         const char* host_uname =  node->details->uname;
-        GListPtr allResources = node->details->allocated_rsc;
-        GListPtr activeResources = node->details->running_rsc;
-        GListPtr unactiveResources = pcmk__subtract_lists(allResources, activeResources, (GCompareFunc) strcmp);
-        GListPtr lpc = NULL;
+        GList *allResources = node->details->allocated_rsc;
+        GList *activeResources = node->details->running_rsc;
+        GList *unactiveResources = pcmk__subtract_lists(allResources, activeResources, (GCompareFunc) strcmp);
+        GList *lpc = NULL;
 
         pcmk__output_xml_create_parent(out, "resources", NULL);
 
@@ -509,7 +509,7 @@ resource_why_xml(pcmk__output_t *out, va_list args)
         g_list_free(unactiveResources);
 
     } else if ((rsc != NULL) && (host_uname == NULL)) {
-        GListPtr hosts = NULL;
+        GList *hosts = NULL;
 
         rsc->fns->location(rsc, &hosts, TRUE);
         crm_xml_add(xml_node, "running", pcmk__btoa(hosts != NULL));
@@ -532,10 +532,10 @@ add_resource_name(pcmk__output_t *out, pe_resource_t *rsc) {
     }
 }
 
-PCMK__OUTPUT_ARGS("resource-names-list", "GListPtr")
+PCMK__OUTPUT_ARGS("resource-names-list", "GList *")
 static int
 resource_names(pcmk__output_t *out, va_list args) {
-    GListPtr resources = va_arg(args, GListPtr);
+    GList *resources = va_arg(args, GList *);
 
     if (resources == NULL) {
         out->err(out, "NO resources configured\n");
@@ -544,7 +544,7 @@ resource_names(pcmk__output_t *out, va_list args) {
 
     out->begin_list(out, NULL, NULL, "Resource Names");
 
-    for (GListPtr lpc = resources; lpc != NULL; lpc = lpc->next) {
+    for (GList *lpc = resources; lpc != NULL; lpc = lpc->next) {
         pe_resource_t *rsc = (pe_resource_t *) lpc->data;
         add_resource_name(out, rsc);
     }
-- 
1.8.3.1


From 2075e40607d4a73617a079163cb7c6a2301b7d86 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Mon, 9 Nov 2020 10:41:34 -0500
Subject: [PATCH 2/9] Fix: libpacemaker: Remove some G_GNUC_UNUSED references.

These variables are, in fact, being used.
---
 lib/pacemaker/pcmk_output.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/pacemaker/pcmk_output.c b/lib/pacemaker/pcmk_output.c
index a0b12b9..a2bc931 100644
--- a/lib/pacemaker/pcmk_output.c
+++ b/lib/pacemaker/pcmk_output.c
@@ -218,7 +218,7 @@ static int colocations_list_xml(pcmk__output_t *out, va_list args) {
 
 PCMK__OUTPUT_ARGS("locations-list", "pe_resource_t *")
 static int locations_list(pcmk__output_t *out, va_list args) {
-    pe_resource_t *rsc G_GNUC_UNUSED = va_arg(args, pe_resource_t *);
+    pe_resource_t *rsc = va_arg(args, pe_resource_t *);
 
     GList *lpc = NULL;
     GList *list = rsc->rsc_location;
@@ -280,9 +280,9 @@ static int locations_list_xml(pcmk__output_t *out, va_list args) {
 PCMK__OUTPUT_ARGS("stacks-constraints", "pe_resource_t *", "pe_working_set_t *", "gboolean")
 static int
 stacks_and_constraints(pcmk__output_t *out, va_list args) {
-    pe_resource_t *rsc G_GNUC_UNUSED = va_arg(args, pe_resource_t *);
-    pe_working_set_t *data_set G_GNUC_UNUSED = va_arg(args, pe_working_set_t *);
-    gboolean recursive G_GNUC_UNUSED = va_arg(args, gboolean);
+    pe_resource_t *rsc = va_arg(args, pe_resource_t *);
+    pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
+    gboolean recursive = va_arg(args, gboolean);
 
     GList *lpc = NULL;
     xmlNodePtr cib_constraints = get_object_root(XML_CIB_TAG_CONSTRAINTS,
-- 
1.8.3.1


From 578f7a22fd75b50fce21de474d6b373146a00666 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Fri, 20 Nov 2020 16:20:23 -0500
Subject: [PATCH 3/9] Fix: libs, tools: Rearrange formatted output args
 popping.

For consistency, move all the va_args stuff to the beginning of each
function, and then declare other variables after that.
---
 lib/pacemaker/pcmk_output.c |  1 +
 lib/pengine/pe_output.c     | 37 ++++++++++++++++++++-----------------
 tools/crm_mon_curses.c      |  1 +
 3 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/lib/pacemaker/pcmk_output.c b/lib/pacemaker/pcmk_output.c
index a2bc931..deb1fe5 100644
--- a/lib/pacemaker/pcmk_output.c
+++ b/lib/pacemaker/pcmk_output.c
@@ -460,6 +460,7 @@ static int
 crmadmin_node_list(pcmk__output_t *out, va_list args)
 {
     xmlNodePtr xml_node = va_arg(args, xmlNodePtr);
+
     int found = 0;
     xmlNode *node = NULL;
     xmlNode *nodes = get_object_root(XML_CIB_TAG_NODES, xml_node);
diff --git a/lib/pengine/pe_output.c b/lib/pengine/pe_output.c
index 3d2fc24..a7118a4 100644
--- a/lib/pengine/pe_output.c
+++ b/lib/pengine/pe_output.c
@@ -216,8 +216,8 @@ pe__cluster_summary(pcmk__output_t *out, va_list args) {
     gboolean show_times = va_arg(args, gboolean);
     gboolean show_counts = va_arg(args, gboolean);
     gboolean show_options = va_arg(args, gboolean);
-    int rc = pcmk_rc_no_output;
 
+    int rc = pcmk_rc_no_output;
     const char *stack_s = get_cluster_stack(data_set);
 
     if (show_stack) {
@@ -282,8 +282,8 @@ pe__cluster_summary_html(pcmk__output_t *out, va_list args) {
     gboolean show_times = va_arg(args, gboolean);
     gboolean show_counts = va_arg(args, gboolean);
     gboolean show_options = va_arg(args, gboolean);
-    int rc = pcmk_rc_no_output;
 
+    int rc = pcmk_rc_no_output;
     const char *stack_s = get_cluster_stack(data_set);
 
     if (show_stack) {
@@ -487,14 +487,14 @@ pe__ban_xml(pcmk__output_t *out, va_list args) {
 PCMK__OUTPUT_ARGS("cluster-counts", "unsigned int", "int", "int", "int")
 int
 pe__cluster_counts_html(pcmk__output_t *out, va_list args) {
-    xmlNodePtr nodes_node = pcmk__output_create_xml_node(out, "li", NULL);
-    xmlNodePtr resources_node = pcmk__output_create_xml_node(out, "li", NULL);
-
     unsigned int nnodes = va_arg(args, unsigned int);
     int nresources = va_arg(args, int);
     int ndisabled = va_arg(args, int);
     int nblocked = va_arg(args, int);
 
+    xmlNodePtr nodes_node = pcmk__output_create_xml_node(out, "li", NULL);
+    xmlNodePtr resources_node = pcmk__output_create_xml_node(out, "li", NULL);
+
     char *nnodes_str = crm_strdup_printf("%d node%s configured",
                                          nnodes, pcmk__plural_s(nnodes));
 
@@ -583,14 +583,14 @@ pe__cluster_counts_text(pcmk__output_t *out, va_list args) {
 PCMK__OUTPUT_ARGS("cluster-counts", "unsigned int", "int", "int", "int")
 int
 pe__cluster_counts_xml(pcmk__output_t *out, va_list args) {
-    xmlNodePtr nodes_node = pcmk__output_create_xml_node(out, "nodes_configured", NULL);
-    xmlNodePtr resources_node = pcmk__output_create_xml_node(out, "resources_configured", NULL);
-
     unsigned int nnodes = va_arg(args, unsigned int);
     int nresources = va_arg(args, int);
     int ndisabled = va_arg(args, int);
     int nblocked = va_arg(args, int);
 
+    xmlNodePtr nodes_node = pcmk__output_create_xml_node(out, "nodes_configured", NULL);
+    xmlNodePtr resources_node = pcmk__output_create_xml_node(out, "resources_configured", NULL);
+
     char *s = crm_itoa(nnodes);
     crm_xml_add(nodes_node, "number", s);
     free(s);
@@ -613,13 +613,13 @@ pe__cluster_counts_xml(pcmk__output_t *out, va_list args) {
 PCMK__OUTPUT_ARGS("cluster-dc", "pe_node_t *", "const char *", "const char *", "char *")
 int
 pe__cluster_dc_html(pcmk__output_t *out, va_list args) {
-    xmlNodePtr node = pcmk__output_create_xml_node(out, "li", NULL);
-
     pe_node_t *dc = va_arg(args, pe_node_t *);
     const char *quorum = va_arg(args, const char *);
     const char *dc_version_s = va_arg(args, const char *);
     char *dc_name = va_arg(args, char *);
 
+    xmlNodePtr node = pcmk__output_create_xml_node(out, "li", NULL);
+
     pcmk_create_html_node(node, "span", NULL, "bold", "Current DC: ");
 
     if (dc) {
@@ -820,6 +820,7 @@ PCMK__OUTPUT_ARGS("cluster-options", "pe_working_set_t *")
 int
 pe__cluster_options_xml(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
+
     const char *no_quorum_policy = NULL;
 
     switch (data_set->no_quorum_policy) {
@@ -857,9 +858,10 @@ pe__cluster_options_xml(pcmk__output_t *out, va_list args) {
 PCMK__OUTPUT_ARGS("cluster-stack", "const char *")
 int
 pe__cluster_stack_html(pcmk__output_t *out, va_list args) {
-    xmlNodePtr node = pcmk__output_create_xml_node(out, "li", NULL);
     const char *stack_s = va_arg(args, const char *);
 
+    xmlNodePtr node = pcmk__output_create_xml_node(out, "li", NULL);
+
     pcmk_create_html_node(node, "span", NULL, "bold", "Stack: ");
     pcmk_create_html_node(node, "span", NULL, NULL, stack_s);
 
@@ -870,6 +872,7 @@ PCMK__OUTPUT_ARGS("cluster-stack", "const char *")
 int
 pe__cluster_stack_text(pcmk__output_t *out, va_list args) {
     const char *stack_s = va_arg(args, const char *);
+
     out->list_item(out, "Stack", "%s", stack_s);
     return pcmk_rc_ok;
 }
@@ -889,14 +892,14 @@ pe__cluster_stack_xml(pcmk__output_t *out, va_list args) {
 PCMK__OUTPUT_ARGS("cluster-times", "const char *", "const char *", "const char *", "const char *")
 int
 pe__cluster_times_html(pcmk__output_t *out, va_list args) {
-    xmlNodePtr updated_node = pcmk__output_create_xml_node(out, "li", NULL);
-    xmlNodePtr changed_node = pcmk__output_create_xml_node(out, "li", NULL);
-
     const char *last_written = va_arg(args, const char *);
     const char *user = va_arg(args, const char *);
     const char *client = va_arg(args, const char *);
     const char *origin = va_arg(args, const char *);
 
+    xmlNodePtr updated_node = pcmk__output_create_xml_node(out, "li", NULL);
+    xmlNodePtr changed_node = pcmk__output_create_xml_node(out, "li", NULL);
+
     char *buf = last_changed_string(last_written, user, client, origin);
 
     pcmk_create_html_node(updated_node, "span", NULL, "bold", "Last updated: ");
@@ -952,6 +955,7 @@ PCMK__OUTPUT_ARGS("failed-action", "xmlNodePtr")
 int
 pe__failed_action_text(pcmk__output_t *out, va_list args) {
     xmlNodePtr xml_op = va_arg(args, xmlNodePtr);
+
     char *s = failed_action_string(xml_op);
 
     out->list_item(out, NULL, "%s", s);
@@ -1229,7 +1233,6 @@ pe__node_attribute_text(pcmk__output_t *out, va_list args) {
     gboolean add_extra = va_arg(args, gboolean);
     int expected_score = va_arg(args, int);
 
-
     if (add_extra) {
         int v = crm_parse_int(value, "0");
 
@@ -1904,10 +1907,10 @@ pe__ticket_text(pcmk__output_t *out, va_list args) {
 PCMK__OUTPUT_ARGS("ticket", "pe_ticket_t *")
 int
 pe__ticket_xml(pcmk__output_t *out, va_list args) {
-    xmlNodePtr node = NULL;
-
     pe_ticket_t *ticket = va_arg(args, pe_ticket_t *);
 
+    xmlNodePtr node = NULL;
+
     node = pcmk__output_create_xml_node(out, "ticket",
                                         "id", ticket->id,
                                         "status", ticket->granted ? "granted" : "revoked",
diff --git a/tools/crm_mon_curses.c b/tools/crm_mon_curses.c
index 9cf28dc..869c7f3 100644
--- a/tools/crm_mon_curses.c
+++ b/tools/crm_mon_curses.c
@@ -369,6 +369,7 @@ PCMK__OUTPUT_ARGS("maint-mode", "unsigned long long int")
 static int
 cluster_maint_mode_console(pcmk__output_t *out, va_list args) {
     unsigned long long flags = va_arg(args, unsigned long long);
+
     int rc;
 
     if (pcmk_is_set(flags, pe_flag_maintenance_mode)) {
-- 
1.8.3.1


From 7a26a80bc7983f79a69c3548a635bf88c031beb7 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Mon, 9 Nov 2020 12:30:19 -0500
Subject: [PATCH 4/9] Fix: libs: Remove extra whitespace in list_item calls.

---
 cts/cli/regression.crm_mon.exp | 50 +++++++++++++++++++++---------------------
 lib/pengine/clone.c            | 10 ++++-----
 lib/pengine/native.c           |  6 ++---
 lib/pengine/pe_output.c        |  4 ++--
 4 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/cts/cli/regression.crm_mon.exp b/cts/cli/regression.crm_mon.exp
index e9f36ad..cf7d28e 100644
--- a/cts/cli/regression.crm_mon.exp
+++ b/cts/cli/regression.crm_mon.exp
@@ -480,13 +480,13 @@ Node List:
   * Online: [ cluster01 cluster02 ]
 
 Active Resources:
-  *  1	(ocf::pacemaker:Dummy):	Active cluster02
-  *  1	(stonith:fence_xvm):	Active cluster01
+  * 1	(ocf::pacemaker:Dummy):	Active cluster02
+  * 1	(stonith:fence_xvm):	Active cluster01
   * Clone Set: ping-clone [ping]:
     * Started: [ cluster01 cluster02 ]
   * Resource Group: exim-group:
-    *  1/1	(lsb:exim):	Active cluster02
-    *  1/1	(ocf::heartbeat:IPaddr):	Active cluster02
+    * 1/1	(lsb:exim):	Active cluster02
+    * 1/1	(ocf::heartbeat:IPaddr):	Active cluster02
   * Clone Set: mysql-clone-group [mysql-group]:
     * Started: [ cluster01 cluster02 ]
 
@@ -609,16 +609,16 @@ Cluster Summary:
 Node List:
   * Node cluster01: online:
     * Resources:
-      *  1	(lsb:mysql-proxy):	Active 
-      *  1	(ocf::pacemaker:ping):	Active 
-      *  1	(stonith:fence_xvm):	Active 
+      * 1	(lsb:mysql-proxy):	Active 
+      * 1	(ocf::pacemaker:ping):	Active 
+      * 1	(stonith:fence_xvm):	Active 
   * Node cluster02: online:
     * Resources:
-      *  1	(lsb:exim):	Active 
-      *  1	(lsb:mysql-proxy):	Active 
-      *  1	(ocf::heartbeat:IPaddr):	Active 
-      *  1	(ocf::pacemaker:Dummy):	Active 
-      *  1	(ocf::pacemaker:ping):	Active 
+      * 1	(lsb:exim):	Active 
+      * 1	(lsb:mysql-proxy):	Active 
+      * 1	(ocf::heartbeat:IPaddr):	Active 
+      * 1	(ocf::pacemaker:Dummy):	Active 
+      * 1	(ocf::pacemaker:ping):	Active 
 
 Node Attributes:
   * Node: cluster01:
@@ -2857,7 +2857,7 @@ Node List:
   * GuestOnline: [ httpd-bundle-0@cluster02 httpd-bundle-1@cluster01 ]
 
 Full List of Resources:
-  *  1/1	(stonith:fence_xvm):	Active cluster01
+  * 1/1	(stonith:fence_xvm):	Active cluster01
   * Clone Set: ping-clone [ping]:
     * Started: [ cluster01 ]
     * Stopped: [ cluster02 ]
@@ -2865,7 +2865,7 @@ Full List of Resources:
     * httpd-bundle-0 (192.168.122.131)	(ocf::heartbeat:apache):	 Started cluster02
     * httpd-bundle-1 (192.168.122.132)	(ocf::heartbeat:apache):	 Stopped cluster01
   * Resource Group: partially-active-group:
-    *  1/2	(ocf::pacemaker:Dummy):	Active cluster02
+    * 1/2	(ocf::pacemaker:Dummy):	Active cluster02
 
 Node Attributes:
   * Node: cluster01:
@@ -2919,20 +2919,20 @@ Cluster Summary:
 Node List:
   * Node cluster01: online:
     * Resources:
-      *  1	(ocf::heartbeat:IPaddr2):	Active 
-      *  1	(ocf::heartbeat:docker):	Active 
-      *  1	(ocf::pacemaker:ping):	Active 
-      *  1	(ocf::pacemaker:remote):	Active 
-      *  1	(stonith:fence_xvm):	Active 
+      * 1	(ocf::heartbeat:IPaddr2):	Active 
+      * 1	(ocf::heartbeat:docker):	Active 
+      * 1	(ocf::pacemaker:ping):	Active 
+      * 1	(ocf::pacemaker:remote):	Active 
+      * 1	(stonith:fence_xvm):	Active 
   * Node cluster02: online:
     * Resources:
-      *  1	(ocf::heartbeat:IPaddr2):	Active 
-      *  1	(ocf::heartbeat:docker):	Active 
-      *  1	(ocf::pacemaker:Dummy):	Active 
-      *  1	(ocf::pacemaker:remote):	Active 
+      * 1	(ocf::heartbeat:IPaddr2):	Active 
+      * 1	(ocf::heartbeat:docker):	Active 
+      * 1	(ocf::pacemaker:Dummy):	Active 
+      * 1	(ocf::pacemaker:remote):	Active 
   * GuestNode httpd-bundle-0@cluster02: online:
     * Resources:
-      *  1	(ocf::heartbeat:apache):	Active 
+      * 1	(ocf::heartbeat:apache):	Active 
 
 Inactive Resources:
   * Clone Set: ping-clone [ping]:
@@ -2942,7 +2942,7 @@ Inactive Resources:
     * httpd-bundle-0 (192.168.122.131)	(ocf::heartbeat:apache):	 Started cluster02
     * httpd-bundle-1 (192.168.122.132)	(ocf::heartbeat:apache):	 Stopped cluster01
   * Resource Group: partially-active-group:
-    *  1/2	(ocf::pacemaker:Dummy):	Active cluster02
+    * 1/2	(ocf::pacemaker:Dummy):	Active cluster02
 
 Node Attributes:
   * Node: cluster01:
diff --git a/lib/pengine/clone.c b/lib/pengine/clone.c
index 9b48d01..9e98178 100644
--- a/lib/pengine/clone.c
+++ b/lib/pengine/clone.c
@@ -781,7 +781,7 @@ pe__clone_html(pcmk__output_t *out, va_list args)
     }
 
     if (list_text != NULL) {
-        out->list_item(out, NULL, " Masters: [ %s ]", list_text);
+        out->list_item(out, NULL, "Masters: [ %s ]", list_text);
         g_list_free(master_list);
         free(list_text);
         list_text = NULL;
@@ -806,13 +806,13 @@ pe__clone_html(pcmk__output_t *out, va_list args)
             enum rsc_role_e role = configured_role(rsc);
 
             if(role == RSC_ROLE_SLAVE) {
-                out->list_item(out, NULL, " Slaves (target-role): [ %s ]", list_text);
+                out->list_item(out, NULL, "Slaves (target-role): [ %s ]", list_text);
             } else {
-                out->list_item(out, NULL, " Slaves: [ %s ]", list_text);
+                out->list_item(out, NULL, "Slaves: [ %s ]", list_text);
             }
 
         } else {
-            out->list_item(out, NULL, " Started: [ %s ]", list_text);
+            out->list_item(out, NULL, "Started: [ %s ]", list_text);
         }
 
         g_list_free(started_list);
@@ -861,7 +861,7 @@ pe__clone_html(pcmk__output_t *out, va_list args)
         }
 
         if (stopped_list != NULL) {
-            out->list_item(out, NULL, " %s: [ %s ]", state, stopped_list);
+            out->list_item(out, NULL, "%s: [ %s ]", state, stopped_list);
             free(stopped_list);
             stopped_list_len = 0;
         }
diff --git a/lib/pengine/native.c b/lib/pengine/native.c
index 6f27d7b..193be17 100644
--- a/lib/pengine/native.c
+++ b/lib/pengine/native.c
@@ -1320,12 +1320,12 @@ pe__rscs_brief_output(pcmk__output_t *out, GListPtr rsc_list, long options, gboo
             }
 
             if (print_all) {
-                out->list_item(out, NULL, " %d/%d\t(%s):\tActive %s",
+                out->list_item(out, NULL, "%d/%d\t(%s):\tActive %s",
                                *active_counter,
                                rsc_counter ? *rsc_counter : 0, type,
                                (*active_counter > 0) && node_name ? node_name : "");
             } else {
-                out->list_item(out, NULL, " %d\t(%s):\tActive %s",
+                out->list_item(out, NULL, "%d\t(%s):\tActive %s",
                                *active_counter, type,
                                (*active_counter > 0) && node_name ? node_name : "");
             }
@@ -1334,7 +1334,7 @@ pe__rscs_brief_output(pcmk__output_t *out, GListPtr rsc_list, long options, gboo
         }
 
         if (print_all && active_counter_all == 0) {
-            out->list_item(out, NULL, " %d/%d\t(%s):\tActive",
+            out->list_item(out, NULL, "%d/%d\t(%s):\tActive",
                            active_counter_all,
                            rsc_counter ? *rsc_counter : 0, type);
             rc = pcmk_rc_ok;
diff --git a/lib/pengine/pe_output.c b/lib/pengine/pe_output.c
index a7118a4..e26604e 100644
--- a/lib/pengine/pe_output.c
+++ b/lib/pengine/pe_output.c
@@ -1890,13 +1890,13 @@ pe__ticket_text(pcmk__output_t *out, va_list args) {
 
     if (ticket->last_granted > -1) {
         char *time = pcmk_format_named_time("last-granted", ticket->last_granted);
-        out->list_item(out, ticket->id, "\t%s%s %s",
+        out->list_item(out, ticket->id, "%s%s %s",
                        ticket->granted ? "granted" : "revoked",
                        ticket->standby ? " [standby]" : "",
                        time);
         free(time);
     } else {
-        out->list_item(out, ticket->id, "\t%s%s",
+        out->list_item(out, ticket->id, "%s%s",
                        ticket->granted ? "granted" : "revoked",
                        ticket->standby ? " [standby]" : "");
     }
-- 
1.8.3.1


From 3db514eed9764d6947f114dfe870a88d082db8a3 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Mon, 9 Nov 2020 13:53:23 -0500
Subject: [PATCH 5/9] Fix: libs, tools: Don't use fprintf in formatted output.

That's what out->info is for.  And then having done this, the special
console-specific version of the maint-mode message can go away.  It's
now exactly the same as the text version.
---
 lib/pengine/pe_output.c | 10 ++++------
 tools/crm_mon_curses.c  | 28 +---------------------------
 2 files changed, 5 insertions(+), 33 deletions(-)

diff --git a/lib/pengine/pe_output.c b/lib/pengine/pe_output.c
index e26604e..1b57f64 100644
--- a/lib/pengine/pe_output.c
+++ b/lib/pengine/pe_output.c
@@ -694,14 +694,12 @@ pe__cluster_maint_mode_text(pcmk__output_t *out, va_list args) {
     unsigned long long flags = va_arg(args, unsigned long long);
 
     if (pcmk_is_set(flags, pe_flag_maintenance_mode)) {
-        fprintf(out->dest, "\n              *** Resource management is DISABLED ***");
-        fprintf(out->dest, "\n  The cluster will not attempt to start, stop or recover services");
-        fprintf(out->dest, "\n");
+        out->info(out, "\n              *** Resource management is DISABLED ***");
+        out->info(out, "  The cluster will not attempt to start, stop or recover services");
         return pcmk_rc_ok;
     } else if (pcmk_is_set(flags, pe_flag_stop_everything)) {
-        fprintf(out->dest, "\n    *** Resource management is DISABLED ***");
-        fprintf(out->dest, "\n  The cluster will keep all resources stopped");
-        fprintf(out->dest, "\n");
+        out->info(out, "\n    *** Resource management is DISABLED ***");
+        out->info(out, "  The cluster will keep all resources stopped");
         return pcmk_rc_ok;
     } else {
         return pcmk_rc_no_output;
diff --git a/tools/crm_mon_curses.c b/tools/crm_mon_curses.c
index 869c7f3..ae22198 100644
--- a/tools/crm_mon_curses.c
+++ b/tools/crm_mon_curses.c
@@ -365,32 +365,6 @@ stonith_event_console(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("maint-mode", "unsigned long long int")
-static int
-cluster_maint_mode_console(pcmk__output_t *out, va_list args) {
-    unsigned long long flags = va_arg(args, unsigned long long);
-
-    int rc;
-
-    if (pcmk_is_set(flags, pe_flag_maintenance_mode)) {
-        printw("\n              *** Resource management is DISABLED ***");
-        printw("\n  The cluster will not attempt to start, stop or recover services");
-        printw("\n");
-        rc = pcmk_rc_ok;
-    } else if (pcmk_is_set(flags, pe_flag_stop_everything)) {
-        printw("\n    *** Resource management is DISABLED ***");
-        printw("\n  The cluster will keep all resources stopped");
-        printw("\n");
-        rc = pcmk_rc_ok;
-    } else {
-        rc = pcmk_rc_no_output;
-    }
-
-    clrtoeol();
-    refresh();
-    return rc;
-}
-
 static pcmk__message_entry_t fmt_functions[] = {
     { "ban", "console", pe__ban_text },
     { "bundle", "console", pe__bundle_text },
@@ -406,7 +380,7 @@ static pcmk__message_entry_t fmt_functions[] = {
     { "fencing-history", "console", stonith__history },
     { "full-fencing-history", "console", stonith__full_history },
     { "group", "console", pe__group_text },
-    { "maint-mode", "console", cluster_maint_mode_console },
+    { "maint-mode", "console", pe__cluster_maint_mode_text },
     { "node", "console", pe__node_text },
     { "node-attribute", "console", pe__node_attribute_text },
     { "node-list", "console", pe__node_list_text },
-- 
1.8.3.1


From a7bbe968df5617c78e78495406f95f9d258834f1 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Thu, 19 Nov 2020 16:04:09 -0500
Subject: [PATCH 6/9] Fix: libstonithd: Use subprocess_output directly.

stonith__validate_agent_text was using puts, when it should really just
be using subprocess_output.  The effect is the same but we should be
using the same functions everywhere.
---
 lib/fencing/st_output.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/lib/fencing/st_output.c b/lib/fencing/st_output.c
index 7c3ccef..145dd14 100644
--- a/lib/fencing/st_output.c
+++ b/lib/fencing/st_output.c
@@ -403,14 +403,7 @@ stonith__validate_agent_text(pcmk__output_t *out, va_list args) {
                               rc ? "failed" : "succeeded");
     }
 
-    if (output) {
-        puts(output);
-    }
-
-    if (error_output) {
-        puts(error_output);
-    }
-
+    out->subprocess_output(out, rc, output, error_output);
     return rc;
 }
 
-- 
1.8.3.1


From 39062beb1f243078bab71cc26af44019927da112 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Fri, 20 Nov 2020 16:22:12 -0500
Subject: [PATCH 7/9] Fix: libs, tools: Add -list to certain formatted output
 message names.

Basically, if the message creates its own list, the name should end in
-list.  This is a hint to the caller that they do not need to add an
extra layer of lists.  I've further changed the names of these messages
to be a little shorter, too.

Note that some messages (the resource variants most obviously) create
their own list but don't have -list in the name.  Here, the list is more
for organizational purposes rather than indicating that it contains
items.
---
 lib/fencing/st_output.c      | 20 +++++++--------
 tools/crm_mon_curses.c       |  8 +++---
 tools/crm_mon_print.c        | 14 +++++-----
 tools/crm_resource.c         |  8 +++---
 tools/crm_resource_print.c   | 61 ++++++++++++++++++++++----------------------
 tools/crm_resource_runtime.c |  2 +-
 6 files changed, 56 insertions(+), 57 deletions(-)

diff --git a/lib/fencing/st_output.c b/lib/fencing/st_output.c
index 145dd14..e1f4830 100644
--- a/lib/fencing/st_output.c
+++ b/lib/fencing/st_output.c
@@ -30,7 +30,7 @@ time_t_string(time_t when) {
     return buf;
 }
 
-PCMK__OUTPUT_ARGS("failed-fencing-history", "stonith_history_t *", "GList *", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("failed-fencing-list", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__failed_history(pcmk__output_t *out, va_list args) {
     stonith_history_t *history = va_arg(args, stonith_history_t *);
@@ -58,7 +58,7 @@ stonith__failed_history(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("fencing-history", "stonith_history_t *", "GList *", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("fencing-list", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__history(pcmk__output_t *out, va_list args) {
     stonith_history_t *history = va_arg(args, stonith_history_t *);
@@ -84,7 +84,7 @@ stonith__history(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("full-fencing-history", "crm_exit_t", "stonith_history_t *", "GList *", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("full-fencing-list", "crm_exit_t", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__full_history(pcmk__output_t *out, va_list args) {
     crm_exit_t history_rc G_GNUC_UNUSED = va_arg(args, crm_exit_t);
@@ -109,7 +109,7 @@ stonith__full_history(pcmk__output_t *out, va_list args) {
     return rc;
 }
  
-PCMK__OUTPUT_ARGS("full-fencing-history", "crm_exit_t", "stonith_history_t *", "GList *", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("full-fencing-list", "crm_exit_t", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__full_history_xml(pcmk__output_t *out, va_list args) {
     crm_exit_t history_rc = va_arg(args, crm_exit_t);
@@ -198,7 +198,7 @@ stonith__last_fenced_xml(pcmk__output_t *out, va_list args) {
     }
 }
 
-PCMK__OUTPUT_ARGS("pending-fencing-actions", "stonith_history_t *", "GList *", "gboolean", "gboolean")
+PCMK__OUTPUT_ARGS("pending-fencing-list", "stonith_history_t *", "GList *", "gboolean", "gboolean")
 int
 stonith__pending_actions(pcmk__output_t *out, va_list args) {
     stonith_history_t *history = va_arg(args, stonith_history_t *);
@@ -433,15 +433,15 @@ stonith__validate_agent_xml(pcmk__output_t *out, va_list args) {
 }
 
 static pcmk__message_entry_t fmt_functions[] = {
-    { "failed-fencing-history", "default", stonith__failed_history },
-    { "fencing-history", "default", stonith__history },
-    { "full-fencing-history", "default", stonith__full_history },
-    { "full-fencing-history", "xml", stonith__full_history_xml },
+    { "failed-fencing-list", "default", stonith__failed_history },
+    { "fencing-list", "default", stonith__history },
+    { "full-fencing-list", "default", stonith__full_history },
+    { "full-fencing-list", "xml", stonith__full_history_xml },
     { "last-fenced", "html", stonith__last_fenced_html },
     { "last-fenced", "log", stonith__last_fenced_text },
     { "last-fenced", "text", stonith__last_fenced_text },
     { "last-fenced", "xml", stonith__last_fenced_xml },
-    { "pending-fencing-actions", "default", stonith__pending_actions },
+    { "pending-fencing-list", "default", stonith__pending_actions },
     { "stonith-event", "html", stonith__event_html },
     { "stonith-event", "log", stonith__event_text },
     { "stonith-event", "text", stonith__event_text },
diff --git a/tools/crm_mon_curses.c b/tools/crm_mon_curses.c
index ae22198..5c79dd2 100644
--- a/tools/crm_mon_curses.c
+++ b/tools/crm_mon_curses.c
@@ -376,16 +376,16 @@ static pcmk__message_entry_t fmt_functions[] = {
     { "cluster-summary", "console", pe__cluster_summary },
     { "cluster-times", "console", pe__cluster_times_text },
     { "failed-action", "console", pe__failed_action_text },
-    { "failed-fencing-history", "console", stonith__failed_history },
-    { "fencing-history", "console", stonith__history },
-    { "full-fencing-history", "console", stonith__full_history },
+    { "failed-fencing-list", "console", stonith__failed_history },
+    { "fencing-list", "console", stonith__history },
+    { "full-fencing-list", "console", stonith__full_history },
     { "group", "console", pe__group_text },
     { "maint-mode", "console", pe__cluster_maint_mode_text },
     { "node", "console", pe__node_text },
     { "node-attribute", "console", pe__node_attribute_text },
     { "node-list", "console", pe__node_list_text },
     { "op-history", "console", pe__op_history_text },
-    { "pending-fencing-actions", "console", stonith__pending_actions },
+    { "pending-fencing-list", "console", stonith__pending_actions },
     { "primitive", "console", pe__resource_text },
     { "resource-history", "console", pe__resource_history_text },
     { "stonith-event", "console", stonith_event_console },
diff --git a/tools/crm_mon_print.c b/tools/crm_mon_print.c
index ce3e47c..06840b7 100644
--- a/tools/crm_mon_print.c
+++ b/tools/crm_mon_print.c
@@ -735,7 +735,7 @@ print_status(pcmk__output_t *out, pe_working_set_t *data_set,
                                                               GINT_TO_POINTER(st_failed));
 
         if (hp) {
-            CHECK_RC(rc, out->message(out, "failed-fencing-history", stonith_history, unames,
+            CHECK_RC(rc, out->message(out, "failed-fencing-list", stonith_history, unames,
                                       pcmk_is_set(mon_ops, mon_op_fence_full_history),
                                       rc == pcmk_rc_ok));
         }
@@ -759,7 +759,7 @@ print_status(pcmk__output_t *out, pe_working_set_t *data_set,
                                                                   GINT_TO_POINTER(st_failed));
 
             if (hp) {
-                CHECK_RC(rc, out->message(out, "fencing-history", hp, unames,
+                CHECK_RC(rc, out->message(out, "fencing-list", hp, unames,
                                           pcmk_is_set(mon_ops, mon_op_fence_full_history),
                                           rc == pcmk_rc_ok));
             }
@@ -767,7 +767,7 @@ print_status(pcmk__output_t *out, pe_working_set_t *data_set,
             stonith_history_t *hp = stonith__first_matching_event(stonith_history, stonith__event_state_pending, NULL);
 
             if (hp) {
-                CHECK_RC(rc, out->message(out, "pending-fencing-actions", hp, unames,
+                CHECK_RC(rc, out->message(out, "pending-fencing-list", hp, unames,
                                           pcmk_is_set(mon_ops, mon_op_fence_full_history),
                                           rc == pcmk_rc_ok));
             }
@@ -853,7 +853,7 @@ print_xml_status(pcmk__output_t *out, pe_working_set_t *data_set,
     if (pcmk_is_set(show, mon_show_fencing_all)
         && pcmk_is_set(mon_ops, mon_op_fence_history)) {
 
-        out->message(out, "full-fencing-history", history_rc, stonith_history,
+        out->message(out, "full-fencing-list", history_rc, stonith_history,
                      unames, pcmk_is_set(mon_ops, mon_op_fence_full_history),
                      FALSE);
     }
@@ -954,7 +954,7 @@ print_html_status(pcmk__output_t *out, pe_working_set_t *data_set,
                                                               GINT_TO_POINTER(st_failed));
 
         if (hp) {
-            out->message(out, "failed-fencing-history", stonith_history, unames,
+            out->message(out, "failed-fencing-list", stonith_history, unames,
                          pcmk_is_set(mon_ops, mon_op_fence_full_history), FALSE);
         }
     }
@@ -966,7 +966,7 @@ print_html_status(pcmk__output_t *out, pe_working_set_t *data_set,
                                                                   GINT_TO_POINTER(st_failed));
 
             if (hp) {
-                out->message(out, "fencing-history", hp, unames,
+                out->message(out, "fencing-list", hp, unames,
                              pcmk_is_set(mon_ops, mon_op_fence_full_history),
                              FALSE);
             }
@@ -974,7 +974,7 @@ print_html_status(pcmk__output_t *out, pe_working_set_t *data_set,
             stonith_history_t *hp = stonith__first_matching_event(stonith_history, stonith__event_state_pending, NULL);
 
             if (hp) {
-                out->message(out, "pending-fencing-actions", hp, unames,
+                out->message(out, "pending-fencing-list", hp, unames,
                              pcmk_is_set(mon_ops, mon_op_fence_full_history),
                              FALSE);
             }
diff --git a/tools/crm_resource.c b/tools/crm_resource.c
index 2c62ff6..95c72fc 100644
--- a/tools/crm_resource.c
+++ b/tools/crm_resource.c
@@ -1816,7 +1816,7 @@ main(int argc, char **argv)
 
         case cmd_locate: {
             GListPtr resources = cli_resource_search(out, rsc, options.rsc_id, data_set);
-            rc = out->message(out, "resource-search", resources, rsc, options.rsc_id);
+            rc = out->message(out, "resource-search-list", resources, rsc, options.rsc_id);
             break;
         }
 
@@ -1839,7 +1839,7 @@ main(int argc, char **argv)
                         goto done;
                     }
                 }
-                out->message(out, "resource-why", cib_conn, data_set->resources, rsc, dest);
+                out->message(out, "resource-reasons-list", cib_conn, data_set->resources, rsc, dest);
                 rc = pcmk_rc_ok;
             }
             break;
@@ -1879,7 +1879,7 @@ main(int argc, char **argv)
             break;
 
         case cmd_get_property:
-            rc = out->message(out, "property", rsc, options.prop_name);
+            rc = out->message(out, "property-list", rsc, options.prop_name);
             if (rc == pcmk_rc_no_output) {
                 rc = ENXIO;
             }
@@ -1916,7 +1916,7 @@ main(int argc, char **argv)
             }
 
             crm_debug("Looking up %s in %s", options.prop_name, rsc->id);
-            rc = out->message(out, "attribute", rsc, options.prop_name, params);
+            rc = out->message(out, "attribute-list", rsc, options.prop_name, params);
             g_hash_table_destroy(params);
             break;
         }
diff --git a/tools/crm_resource_print.c b/tools/crm_resource_print.c
index 4cb78b5..89d6172 100644
--- a/tools/crm_resource_print.c
+++ b/tools/crm_resource_print.c
@@ -127,9 +127,9 @@ cli_resource_print(pcmk__output_t *out, pe_resource_t *rsc,
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("attribute", "pe_resource_t *", "char *", "GHashTable *")
+PCMK__OUTPUT_ARGS("attribute-list", "pe_resource_t *", "char *", "GHashTable *")
 static int
-attribute_default(pcmk__output_t *out, va_list args) {
+attribute_list_default(pcmk__output_t *out, va_list args) {
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     char *attr = va_arg(args, char *);
     GHashTable *params = va_arg(args, GHashTable *);
@@ -147,9 +147,9 @@ attribute_default(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("attribute", "pe_resource_t *", "char *", "GHashTable *")
+PCMK__OUTPUT_ARGS("attribute-list", "pe_resource_t *", "char *", "GHashTable *")
 static int
-attribute_text(pcmk__output_t *out, va_list args) {
+attribute_list_text(pcmk__output_t *out, va_list args) {
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     char *attr = va_arg(args, char *);
     GHashTable *params = va_arg(args, GHashTable *);
@@ -165,9 +165,9 @@ attribute_text(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("property", "pe_resource_t *", "char *")
+PCMK__OUTPUT_ARGS("property-list", "pe_resource_t *", "char *")
 static int
-property_default(pcmk__output_t *out, va_list args) {
+property_list_default(pcmk__output_t *out, va_list args) {
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     char *attr = va_arg(args, char *);
 
@@ -182,9 +182,9 @@ property_default(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("property", "pe_resource_t *", "char *")
+PCMK__OUTPUT_ARGS("property-list", "pe_resource_t *", "char *")
 static int
-property_text(pcmk__output_t *out, va_list args) {
+property_list_text(pcmk__output_t *out, va_list args) {
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     char *attr = va_arg(args, char *);
 
@@ -197,9 +197,9 @@ property_text(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("resource-check", "resource_checks_t *")
+PCMK__OUTPUT_ARGS("resource-check-list", "resource_checks_t *")
 static int
-resource_check_default(pcmk__output_t *out, va_list args) {
+resource_check_list_default(pcmk__output_t *out, va_list args) {
     resource_checks_t *checks = va_arg(args, resource_checks_t *);
 
     pe_resource_t *parent = uber_parent(checks->rsc);
@@ -239,9 +239,9 @@ resource_check_default(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("resource-check", "resource_checks_t *")
+PCMK__OUTPUT_ARGS("resource-check-list", "resource_checks_t *")
 static int
-resource_check_xml(pcmk__output_t *out, va_list args) {
+resource_check_list_xml(pcmk__output_t *out, va_list args) {
     resource_checks_t *checks = va_arg(args, resource_checks_t *);
 
     pe_resource_t *parent = uber_parent(checks->rsc);
@@ -270,9 +270,9 @@ resource_check_xml(pcmk__output_t *out, va_list args) {
     return rc;
 }
 
-PCMK__OUTPUT_ARGS("resource-search", "GList *", "pe_resource_t *", "gchar *")
+PCMK__OUTPUT_ARGS("resource-search-list", "GList *", "pe_resource_t *", "gchar *")
 static int
-resource_search_default(pcmk__output_t *out, va_list args)
+resource_search_list_default(pcmk__output_t *out, va_list args)
 {
     GList *nodes = va_arg(args, GList *);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
@@ -315,10 +315,9 @@ resource_search_default(pcmk__output_t *out, va_list args)
     return rc;
 }
 
-
-PCMK__OUTPUT_ARGS("resource-search", "GList *", "pe_resource_t *", "gchar *")
+PCMK__OUTPUT_ARGS("resource-search-list", "GList *", "pe_resource_t *", "gchar *")
 static int
-resource_search_xml(pcmk__output_t *out, va_list args)
+resource_search_list_xml(pcmk__output_t *out, va_list args)
 {
     GList *nodes = va_arg(args, GList *);
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
@@ -340,10 +339,10 @@ resource_search_xml(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("resource-why", "cib_t *", "GList *", "pe_resource_t *",
+PCMK__OUTPUT_ARGS("resource-reasons-list", "cib_t *", "GList *", "pe_resource_t *",
                   "pe_node_t *")
 static int
-resource_why_default(pcmk__output_t *out, va_list args)
+resource_reasons_list_default(pcmk__output_t *out, va_list args)
 {
     cib_t *cib_conn = va_arg(args, cib_t *);
     GList *resources = va_arg(args, GList *);
@@ -423,10 +422,10 @@ resource_why_default(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("resource-why", "cib_t *", "GList *", "pe_resource_t *",
+PCMK__OUTPUT_ARGS("resource-reasons-list", "cib_t *", "GList *", "pe_resource_t *",
                   "pe_node_t *")
 static int
-resource_why_xml(pcmk__output_t *out, va_list args)
+resource_reasons_list_xml(pcmk__output_t *out, va_list args)
 {
     cib_t *cib_conn = va_arg(args, cib_t *);
     GList *resources = va_arg(args, GList *);
@@ -554,16 +553,16 @@ resource_names(pcmk__output_t *out, va_list args) {
 }
 
 static pcmk__message_entry_t fmt_functions[] = {
-    { "attribute", "default", attribute_default },
-    { "attribute", "text", attribute_text },
-    { "property", "default", property_default },
-    { "property", "text", property_text },
-    { "resource-check", "default", resource_check_default },
-    { "resource-check", "xml", resource_check_xml },
-    { "resource-search", "default", resource_search_default },
-    { "resource-search", "xml", resource_search_xml },
-    { "resource-why", "default", resource_why_default },
-    { "resource-why", "xml", resource_why_xml },
+    { "attribute-list", "default", attribute_list_default },
+    { "attribute-list", "text", attribute_list_text },
+    { "property-list", "default", property_list_default },
+    { "property-list", "text", property_list_text },
+    { "resource-check-list", "default", resource_check_list_default },
+    { "resource-check-list", "xml", resource_check_list_xml },
+    { "resource-search-list", "default", resource_search_list_default },
+    { "resource-search-list", "xml", resource_search_list_xml },
+    { "resource-reasons-list", "default", resource_reasons_list_default },
+    { "resource-reasons-list", "xml", resource_reasons_list_xml },
     { "resource-names-list", "default", resource_names },
 
     { NULL, NULL, NULL }
diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c
index bbd8bc1..3a9feac 100644
--- a/tools/crm_resource_runtime.c
+++ b/tools/crm_resource_runtime.c
@@ -900,7 +900,7 @@ cli_resource_check(pcmk__output_t *out, cib_t * cib_conn, pe_resource_t *rsc)
     checks = cli_check_resource(rsc, role_s, managed);
 
     if (checks->flags != 0 || checks->lock_node != NULL) {
-        rc = out->message(out, "resource-check", checks);
+        rc = out->message(out, "resource-check-list", checks);
     }
 
     free(role_s);
-- 
1.8.3.1


From d7322d1c2802c2d65a82a19b2513b5769b25dc30 Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Fri, 20 Nov 2020 16:23:14 -0500
Subject: [PATCH 8/9] Fix: libpacemaker: Fix typing on crmadmin formatted
 output messages.

Mostly this is just changing char * into const char *, though the
crm_node_list one is pretty important.
---
 lib/pacemaker/pcmk_output.c | 64 ++++++++++++++++++++++-----------------------
 1 file changed, 32 insertions(+), 32 deletions(-)

diff --git a/lib/pacemaker/pcmk_output.c b/lib/pacemaker/pcmk_output.c
index deb1fe5..5c54204 100644
--- a/lib/pacemaker/pcmk_output.c
+++ b/lib/pacemaker/pcmk_output.c
@@ -357,14 +357,14 @@ stacks_and_constraints_xml(pcmk__output_t *out, va_list args) {
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("health", "char *", "char *", "char *", "char *")
+PCMK__OUTPUT_ARGS("health", "const char *", "const char *", "const char *", "const char *")
 static int
 health_text(pcmk__output_t *out, va_list args)
 {
-    char *sys_from = va_arg(args, char *);
-    char *host_from = va_arg(args, char *);
-    char *fsa_state = va_arg(args, char *);
-    char *result = va_arg(args, char *);
+    const char *sys_from = va_arg(args, const char *);
+    const char *host_from = va_arg(args, const char *);
+    const char *fsa_state = va_arg(args, const char *);
+    const char *result = va_arg(args, const char *);
 
     if (!out->is_quiet(out)) {
         out->info(out, "Status of %s@%s: %s (%s)", crm_str(sys_from),
@@ -376,14 +376,14 @@ health_text(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("health", "char *", "char *", "char *", "char *")
+PCMK__OUTPUT_ARGS("health", "const char *", "const char *", "const char *", "const char *")
 static int
 health_xml(pcmk__output_t *out, va_list args)
 {
-    char *sys_from = va_arg(args, char *);
-    char *host_from = va_arg(args, char *);
-    char *fsa_state = va_arg(args, char *);
-    char *result = va_arg(args, char *);
+    const char *sys_from = va_arg(args, const char *);
+    const char *host_from = va_arg(args, const char *);
+    const char *fsa_state = va_arg(args, const char *);
+    const char *result = va_arg(args, const char *);
 
     pcmk__output_create_xml_node(out, crm_str(sys_from),
                                  "node_name", crm_str(host_from),
@@ -393,13 +393,13 @@ health_xml(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("pacemakerd-health", "char *", "char *", "char *")
+PCMK__OUTPUT_ARGS("pacemakerd-health", "const char *", "const char *", "const char *")
 static int
 pacemakerd_health_text(pcmk__output_t *out, va_list args)
 {
-    char *sys_from = va_arg(args, char *);
-    char *state = va_arg(args, char *);
-    char *last_updated = va_arg(args, char *);
+    const char *sys_from = va_arg(args, const char *);
+    const char *state = va_arg(args, const char *);
+    const char *last_updated = va_arg(args, const char *);
 
     if (!out->is_quiet(out)) {
         out->info(out, "Status of %s: '%s' %s %s", crm_str(sys_from),
@@ -412,13 +412,13 @@ pacemakerd_health_text(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("pacemakerd-health", "char *", "char *", "char *")
+PCMK__OUTPUT_ARGS("pacemakerd-health", "const char *", "const char *", "const char *")
 static int
 pacemakerd_health_xml(pcmk__output_t *out, va_list args)
 {
-    char *sys_from = va_arg(args, char *);
-    char *state = va_arg(args, char *);
-    char *last_updated = va_arg(args, char *);
+    const char *sys_from = va_arg(args, const char *);
+    const char *state = va_arg(args, const char *);
+    const char *last_updated = va_arg(args, const char *);
 
     pcmk__output_create_xml_node(out, crm_str(sys_from),
                                  "state", crm_str(state),
@@ -427,11 +427,11 @@ pacemakerd_health_xml(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("dc", "char *")
+PCMK__OUTPUT_ARGS("dc", "const char *")
 static int
 dc_text(pcmk__output_t *out, va_list args)
 {
-    char *dc = va_arg(args, char *);
+    const char *dc = va_arg(args, const char *);
 
     if (!out->is_quiet(out)) {
         out->info(out, "Designated Controller is: %s", crm_str(dc));
@@ -442,11 +442,11 @@ dc_text(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("dc", "char *")
+PCMK__OUTPUT_ARGS("dc", "const char *")
 static int
 dc_xml(pcmk__output_t *out, va_list args)
 {
-    char *dc = va_arg(args, char *);
+    const char *dc = va_arg(args, const char *);
 
     pcmk__output_create_xml_node(out, "dc",
                                  "node_name", crm_str(dc),
@@ -455,16 +455,16 @@ dc_xml(pcmk__output_t *out, va_list args)
 }
 
 
-PCMK__OUTPUT_ARGS("crmadmin-node-list", "pcmk__output_t *", "xmlNodePtr")
+PCMK__OUTPUT_ARGS("crmadmin-node-list", "xmlNodePtr", "gboolean")
 static int
 crmadmin_node_list(pcmk__output_t *out, va_list args)
 {
     xmlNodePtr xml_node = va_arg(args, xmlNodePtr);
+    gboolean BASH_EXPORT = va_arg(args, gboolean);
 
     int found = 0;
     xmlNode *node = NULL;
     xmlNode *nodes = get_object_root(XML_CIB_TAG_NODES, xml_node);
-    gboolean BASH_EXPORT = va_arg(args, gboolean);
 
     out->begin_list(out, NULL, NULL, "nodes");
 
@@ -490,13 +490,13 @@ crmadmin_node_list(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("crmadmin-node", "char *", "char *", "char *", "gboolean")
+PCMK__OUTPUT_ARGS("crmadmin-node", "const char *", "const char *", "const char *", "gboolean")
 static int
 crmadmin_node_text(pcmk__output_t *out, va_list args)
 {
-    char *type = va_arg(args, char *);
-    char *name = va_arg(args, char *);
-    char *id = va_arg(args, char *);
+    const char *type = va_arg(args, const char *);
+    const char *name = va_arg(args, const char *);
+    const char *id = va_arg(args, const char *);
     gboolean BASH_EXPORT = va_arg(args, gboolean);
 
     if (BASH_EXPORT) {
@@ -509,13 +509,13 @@ crmadmin_node_text(pcmk__output_t *out, va_list args)
     return pcmk_rc_ok;
 }
 
-PCMK__OUTPUT_ARGS("crmadmin-node", "char *", "char *", "char *", "gboolean")
+PCMK__OUTPUT_ARGS("crmadmin-node", "const char *", "const char *", "const char *", "gboolean")
 static int
 crmadmin_node_xml(pcmk__output_t *out, va_list args)
 {
-    char *type = va_arg(args, char *);
-    char *name = va_arg(args, char *);
-    char *id = va_arg(args, char *);
+    const char *type = va_arg(args, const char *);
+    const char *name = va_arg(args, const char *);
+    const char *id = va_arg(args, const char *);
 
     pcmk__output_create_xml_node(out, "node",
                                  "type", type ? type : "member",
-- 
1.8.3.1


From 1a123a8d8a8ec22b6166b5cdebcfdfe6b05bcc4e Mon Sep 17 00:00:00 2001
From: Chris Lumens <clumens@redhat.com>
Date: Fri, 20 Nov 2020 16:23:39 -0500
Subject: [PATCH 9/9] Fix: libs: Decrease the number of visible formatted
 output functions.

The only ones that need to be exported are the ones that crm_mon needs
to reference for its output.  All the others can be static and only
accessed indirectly through calling out->message.

And then remove the prefixes from these newly static functions.  This
could potentially be a little confusing if the text version is public
(and therefore has the, say, pe__ prefix) while the xml version is
hidden and is lacking that suffix.  But I think it'll be okay.
---
 include/crm/fencing/internal.h |  11 +--
 include/crm/pengine/internal.h |  54 ++++----------
 lib/fencing/st_output.c        |  66 ++++++++---------
 lib/pengine/pe_output.c        | 161 +++++++++++++++++++++--------------------
 4 files changed, 129 insertions(+), 163 deletions(-)

diff --git a/include/crm/fencing/internal.h b/include/crm/fencing/internal.h
index 391ab72..dfb1d64 100644
--- a/include/crm/fencing/internal.h
+++ b/include/crm/fencing/internal.h
@@ -185,20 +185,11 @@ int stonith__rhcs_validate(stonith_t *st, int call_options, const char *target,
                            const char *agent, GHashTable *params, const char *host_arg,
                            int timeout, char **output, char **error_output);
 
+/* Exported for crm_mon to reference */
 int stonith__failed_history(pcmk__output_t *out, va_list args);
 int stonith__history(pcmk__output_t *out, va_list args);
 int stonith__full_history(pcmk__output_t *out, va_list args);
-int stonith__full_history_xml(pcmk__output_t *out, va_list args);
-int stonith__last_fenced_html(pcmk__output_t *out, va_list args);
-int stonith__last_fenced_text(pcmk__output_t *out, va_list args);
-int stonith__last_fenced_xml(pcmk__output_t *out, va_list args);
 int stonith__pending_actions(pcmk__output_t *out, va_list args);
-int stonith__event_html(pcmk__output_t *out, va_list args);
-int stonith__event_text(pcmk__output_t *out, va_list args);
-int stonith__event_xml(pcmk__output_t *out, va_list args);
-int stonith__validate_agent_html(pcmk__output_t *out, va_list args);
-int stonith__validate_agent_text(pcmk__output_t *out, va_list args);
-int stonith__validate_agent_xml(pcmk__output_t *out, va_list args);
 
 stonith_history_t *stonith__first_matching_event(stonith_history_t *history,
                                                  bool (*matching_fn)(stonith_history_t *, void *),
diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h
index c4b28cc..89e17b8 100644
--- a/include/crm/pengine/internal.h
+++ b/include/crm/pengine/internal.h
@@ -256,34 +256,9 @@ pe__rsc_bool_str(pe_resource_t *rsc, uint64_t rsc_flag)
     return pcmk__btoa(pcmk_is_set(rsc->flags, rsc_flag));
 }
 
-int pe__ban_html(pcmk__output_t *out, va_list args);
-int pe__ban_text(pcmk__output_t *out, va_list args);
-int pe__ban_xml(pcmk__output_t *out, va_list args);
 int pe__clone_xml(pcmk__output_t *out, va_list args);
 int pe__clone_html(pcmk__output_t *out, va_list args);
 int pe__clone_text(pcmk__output_t *out, va_list args);
-int pe__cluster_counts_html(pcmk__output_t *out, va_list args);
-int pe__cluster_counts_text(pcmk__output_t *out, va_list args);
-int pe__cluster_counts_xml(pcmk__output_t *out, va_list args);
-int pe__cluster_dc_html(pcmk__output_t *out, va_list args);
-int pe__cluster_dc_text(pcmk__output_t *out, va_list args);
-int pe__cluster_dc_xml(pcmk__output_t *out, va_list args);
-int pe__cluster_maint_mode_html(pcmk__output_t *out, va_list args);
-int pe__cluster_maint_mode_text(pcmk__output_t *out, va_list args);
-int pe__cluster_options_html(pcmk__output_t *out, va_list args);
-int pe__cluster_options_log(pcmk__output_t *out, va_list args);
-int pe__cluster_options_text(pcmk__output_t *out, va_list args);
-int pe__cluster_options_xml(pcmk__output_t *out, va_list args);
-int pe__cluster_stack_html(pcmk__output_t *out, va_list args);
-int pe__cluster_stack_text(pcmk__output_t *out, va_list args);
-int pe__cluster_stack_xml(pcmk__output_t *out, va_list args);
-int pe__cluster_summary(pcmk__output_t *out, va_list args);
-int pe__cluster_summary_html(pcmk__output_t *out, va_list args);
-int pe__cluster_times_html(pcmk__output_t *out, va_list args);
-int pe__cluster_times_xml(pcmk__output_t *out, va_list args);
-int pe__cluster_times_text(pcmk__output_t *out, va_list args);
-int pe__failed_action_text(pcmk__output_t *out, va_list args);
-int pe__failed_action_xml(pcmk__output_t *out, va_list args);
 int pe__group_xml(pcmk__output_t *out, va_list args);
 int pe__group_html(pcmk__output_t *out, va_list args);
 int pe__group_text(pcmk__output_t *out, va_list args);
@@ -293,26 +268,25 @@ int pe__bundle_text(pcmk__output_t *out, va_list args);
 int pe__node_html(pcmk__output_t *out, va_list args);
 int pe__node_text(pcmk__output_t *out, va_list args);
 int pe__node_xml(pcmk__output_t *out, va_list args);
-int pe__node_and_op(pcmk__output_t *out, va_list args);
-int pe__node_and_op_xml(pcmk__output_t *out, va_list args);
-int pe__node_attribute_html(pcmk__output_t *out, va_list args);
+int pe__resource_xml(pcmk__output_t *out, va_list args);
+int pe__resource_html(pcmk__output_t *out, va_list args);
+int pe__resource_text(pcmk__output_t *out, va_list args);
+
+/* Exported for crm_mon to reference */
+int pe__ban_text(pcmk__output_t *out, va_list args);
+int pe__cluster_counts_text(pcmk__output_t *out, va_list args);
+int pe__cluster_dc_text(pcmk__output_t *out, va_list args);
+int pe__cluster_maint_mode_text(pcmk__output_t *out, va_list args);
+int pe__cluster_options_text(pcmk__output_t *out, va_list args);
+int pe__cluster_stack_text(pcmk__output_t *out, va_list args);
+int pe__cluster_summary(pcmk__output_t *out, va_list args);
+int pe__cluster_times_text(pcmk__output_t *out, va_list args);
+int pe__failed_action_text(pcmk__output_t *out, va_list args);
 int pe__node_attribute_text(pcmk__output_t *out, va_list args);
-int pe__node_attribute_xml(pcmk__output_t *out, va_list args);
-int pe__node_list_html(pcmk__output_t *out, va_list args);
 int pe__node_list_text(pcmk__output_t *out, va_list args);
-int pe__node_list_xml(pcmk__output_t *out, va_list args);
 int pe__op_history_text(pcmk__output_t *out, va_list args);
-int pe__op_history_xml(pcmk__output_t *out, va_list args);
-int pe__resource_config(pcmk__output_t *out, va_list args);
 int pe__resource_history_text(pcmk__output_t *out, va_list args);
-int pe__resource_history_xml(pcmk__output_t *out, va_list args);
-int pe__resource_xml(pcmk__output_t *out, va_list args);
-int pe__resource_html(pcmk__output_t *out, va_list args);
-int pe__resource_text(pcmk__output_t *out, va_list args);
-int pe__resource_list(pcmk__output_t *out, va_list args);
-int pe__ticket_html(pcmk__output_t *out, va_list args);
 int pe__ticket_text(pcmk__output_t *out, va_list args);
-int pe__ticket_xml(pcmk__output_t *out, va_list args);
 
 void native_free(pe_resource_t * rsc);
 void group_free(pe_resource_t * rsc);
diff --git a/lib/fencing/st_output.c b/lib/fencing/st_output.c
index e1f4830..f48fd55 100644
--- a/lib/fencing/st_output.c
+++ b/lib/fencing/st_output.c
@@ -110,8 +110,8 @@ stonith__full_history(pcmk__output_t *out, va_list args) {
 }
  
 PCMK__OUTPUT_ARGS("full-fencing-list", "crm_exit_t", "stonith_history_t *", "GList *", "gboolean", "gboolean")
-int
-stonith__full_history_xml(pcmk__output_t *out, va_list args) {
+static int
+full_history_xml(pcmk__output_t *out, va_list args) {
     crm_exit_t history_rc = va_arg(args, crm_exit_t);
     stonith_history_t *history = va_arg(args, stonith_history_t *);
     GList *only_node = va_arg(args, GList *);
@@ -147,8 +147,8 @@ stonith__full_history_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("last-fenced", "const char *", "time_t")
-int
-stonith__last_fenced_html(pcmk__output_t *out, va_list args) {
+static int
+last_fenced_html(pcmk__output_t *out, va_list args) {
     const char *target = va_arg(args, const char *);
     time_t when = va_arg(args, time_t);
 
@@ -163,8 +163,8 @@ stonith__last_fenced_html(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("last-fenced", "const char *", "time_t")
-int
-stonith__last_fenced_text(pcmk__output_t *out, va_list args) {
+static int
+last_fenced_text(pcmk__output_t *out, va_list args) {
     const char *target = va_arg(args, const char *);
     time_t when = va_arg(args, time_t);
 
@@ -178,8 +178,8 @@ stonith__last_fenced_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("last-fenced", "const char *", "time_t")
-int
-stonith__last_fenced_xml(pcmk__output_t *out, va_list args) {
+static int
+last_fenced_xml(pcmk__output_t *out, va_list args) {
     const char *target = va_arg(args, const char *);
     time_t when = va_arg(args, time_t);
 
@@ -228,8 +228,8 @@ stonith__pending_actions(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("stonith-event", "stonith_history_t *", "gboolean", "gboolean")
-int
-stonith__event_html(pcmk__output_t *out, va_list args) {
+static int
+stonith_event_html(pcmk__output_t *out, va_list args) {
     stonith_history_t *event = va_arg(args, stonith_history_t *);
     gboolean full_history = va_arg(args, gboolean);
     gboolean later_succeeded = va_arg(args, gboolean);
@@ -276,8 +276,8 @@ stonith__event_html(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("stonith-event", "stonith_history_t *", "gboolean", "gboolean")
-int
-stonith__event_text(pcmk__output_t *out, va_list args) {
+static int
+stonith_event_text(pcmk__output_t *out, va_list args) {
     stonith_history_t *event = va_arg(args, stonith_history_t *);
     gboolean full_history = va_arg(args, gboolean);
     gboolean later_succeeded = va_arg(args, gboolean);
@@ -314,8 +314,8 @@ stonith__event_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("stonith-event", "stonith_history_t *", "gboolean", "gboolean")
-int
-stonith__event_xml(pcmk__output_t *out, va_list args) {
+static int
+stonith_event_xml(pcmk__output_t *out, va_list args) {
     stonith_history_t *event = va_arg(args, stonith_history_t *);
     gboolean full_history G_GNUC_UNUSED = va_arg(args, gboolean);
     gboolean later_succeeded G_GNUC_UNUSED = va_arg(args, gboolean);
@@ -362,8 +362,8 @@ stonith__event_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("validate", "const char *", "const char *", "char *", "char *", "int")
-int
-stonith__validate_agent_html(pcmk__output_t *out, va_list args) {
+static int
+validate_agent_html(pcmk__output_t *out, va_list args) {
     const char *agent = va_arg(args, const char *);
     const char *device = va_arg(args, const char *);
     char *output = va_arg(args, char *);
@@ -387,8 +387,8 @@ stonith__validate_agent_html(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("validate", "const char *", "const char *", "char *", "char *", "int")
-int
-stonith__validate_agent_text(pcmk__output_t *out, va_list args) {
+static int
+validate_agent_text(pcmk__output_t *out, va_list args) {
     const char *agent = va_arg(args, const char *);
     const char *device = va_arg(args, const char *);
     char *output = va_arg(args, char *);
@@ -408,8 +408,8 @@ stonith__validate_agent_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("validate", "const char *", "const char *", "char *", "char *", "int")
-int
-stonith__validate_agent_xml(pcmk__output_t *out, va_list args) {
+static int
+validate_agent_xml(pcmk__output_t *out, va_list args) {
     const char *agent = va_arg(args, const char *);
     const char *device = va_arg(args, const char *);
     char *output = va_arg(args, char *);
@@ -436,20 +436,20 @@ static pcmk__message_entry_t fmt_functions[] = {
     { "failed-fencing-list", "default", stonith__failed_history },
     { "fencing-list", "default", stonith__history },
     { "full-fencing-list", "default", stonith__full_history },
-    { "full-fencing-list", "xml", stonith__full_history_xml },
-    { "last-fenced", "html", stonith__last_fenced_html },
-    { "last-fenced", "log", stonith__last_fenced_text },
-    { "last-fenced", "text", stonith__last_fenced_text },
-    { "last-fenced", "xml", stonith__last_fenced_xml },
+    { "full-fencing-list", "xml", full_history_xml },
+    { "last-fenced", "html", last_fenced_html },
+    { "last-fenced", "log", last_fenced_text },
+    { "last-fenced", "text", last_fenced_text },
+    { "last-fenced", "xml", last_fenced_xml },
     { "pending-fencing-list", "default", stonith__pending_actions },
-    { "stonith-event", "html", stonith__event_html },
-    { "stonith-event", "log", stonith__event_text },
-    { "stonith-event", "text", stonith__event_text },
-    { "stonith-event", "xml", stonith__event_xml },
-    { "validate", "html", stonith__validate_agent_html },
-    { "validate", "log", stonith__validate_agent_text },
-    { "validate", "text", stonith__validate_agent_text },
-    { "validate", "xml", stonith__validate_agent_xml },
+    { "stonith-event", "html", stonith_event_html },
+    { "stonith-event", "log", stonith_event_text },
+    { "stonith-event", "text", stonith_event_text },
+    { "stonith-event", "xml", stonith_event_xml },
+    { "validate", "html", validate_agent_html },
+    { "validate", "log", validate_agent_text },
+    { "validate", "text", validate_agent_text },
+    { "validate", "xml", validate_agent_xml },
 
     { NULL, NULL, NULL }
 };
diff --git a/lib/pengine/pe_output.c b/lib/pengine/pe_output.c
index 1b57f64..5562eb6 100644
--- a/lib/pengine/pe_output.c
+++ b/lib/pengine/pe_output.c
@@ -273,8 +273,8 @@ pe__cluster_summary(pcmk__output_t *out, va_list args) {
 
 PCMK__OUTPUT_ARGS("cluster-summary", "pe_working_set_t *", "gboolean", "gboolean", "gboolean",
                   "gboolean", "gboolean", "gboolean")
-int
-pe__cluster_summary_html(pcmk__output_t *out, va_list args) {
+static int
+cluster_summary_html(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
     gboolean print_clone_detail = va_arg(args, gboolean);
     gboolean show_stack = va_arg(args, gboolean);
@@ -427,8 +427,8 @@ pe__name_and_nvpairs_xml(pcmk__output_t *out, bool is_list, const char *tag_name
 }
 
 PCMK__OUTPUT_ARGS("ban", "pe_node_t *", "pe__location_t *", "gboolean")
-int
-pe__ban_html(pcmk__output_t *out, va_list args) {
+static int
+ban_html(pcmk__output_t *out, va_list args) {
     pe_node_t *pe_node = va_arg(args, pe_node_t *);
     pe__location_t *location = va_arg(args, pe__location_t *);
     gboolean print_clone_detail = va_arg(args, gboolean);
@@ -464,8 +464,8 @@ pe__ban_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("ban", "pe_node_t *", "pe__location_t *", "gboolean")
-int
-pe__ban_xml(pcmk__output_t *out, va_list args) {
+static int
+ban_xml(pcmk__output_t *out, va_list args) {
     pe_node_t *pe_node = va_arg(args, pe_node_t *);
     pe__location_t *location = va_arg(args, pe__location_t *);
     gboolean print_clone_detail G_GNUC_UNUSED = va_arg(args, gboolean);
@@ -485,8 +485,8 @@ pe__ban_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-counts", "unsigned int", "int", "int", "int")
-int
-pe__cluster_counts_html(pcmk__output_t *out, va_list args) {
+static int
+cluster_counts_html(pcmk__output_t *out, va_list args) {
     unsigned int nnodes = va_arg(args, unsigned int);
     int nresources = va_arg(args, int);
     int ndisabled = va_arg(args, int);
@@ -581,8 +581,8 @@ pe__cluster_counts_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-counts", "unsigned int", "int", "int", "int")
-int
-pe__cluster_counts_xml(pcmk__output_t *out, va_list args) {
+static int
+cluster_counts_xml(pcmk__output_t *out, va_list args) {
     unsigned int nnodes = va_arg(args, unsigned int);
     int nresources = va_arg(args, int);
     int ndisabled = va_arg(args, int);
@@ -611,8 +611,8 @@ pe__cluster_counts_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-dc", "pe_node_t *", "const char *", "const char *", "char *")
-int
-pe__cluster_dc_html(pcmk__output_t *out, va_list args) {
+static int
+cluster_dc_html(pcmk__output_t *out, va_list args) {
     pe_node_t *dc = va_arg(args, pe_node_t *);
     const char *quorum = va_arg(args, const char *);
     const char *dc_version_s = va_arg(args, const char *);
@@ -664,8 +664,8 @@ pe__cluster_dc_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-dc", "pe_node_t *", "const char *", "const char *", "char *")
-int
-pe__cluster_dc_xml(pcmk__output_t *out, va_list args) {
+static int
+cluster_dc_xml(pcmk__output_t *out, va_list args) {
     pe_node_t *dc = va_arg(args, pe_node_t *);
     const char *quorum = va_arg(args, const char *);
     const char *dc_version_s = va_arg(args, const char *);
@@ -707,8 +707,8 @@ pe__cluster_maint_mode_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-options", "pe_working_set_t *")
-int
-pe__cluster_options_html(pcmk__output_t *out, va_list args) {
+static int
+cluster_options_html(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
 
     out->list_item(out, NULL, "STONITH of failed nodes %s",
@@ -762,8 +762,8 @@ pe__cluster_options_html(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-options", "pe_working_set_t *")
-int
-pe__cluster_options_log(pcmk__output_t *out, va_list args) {
+static int
+cluster_options_log(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
 
     if (pcmk_is_set(data_set->flags, pe_flag_maintenance_mode)) {
@@ -815,8 +815,8 @@ pe__cluster_options_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-options", "pe_working_set_t *")
-int
-pe__cluster_options_xml(pcmk__output_t *out, va_list args) {
+static int
+cluster_options_xml(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
 
     const char *no_quorum_policy = NULL;
@@ -854,8 +854,8 @@ pe__cluster_options_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-stack", "const char *")
-int
-pe__cluster_stack_html(pcmk__output_t *out, va_list args) {
+static int
+cluster_stack_html(pcmk__output_t *out, va_list args) {
     const char *stack_s = va_arg(args, const char *);
 
     xmlNodePtr node = pcmk__output_create_xml_node(out, "li", NULL);
@@ -876,8 +876,8 @@ pe__cluster_stack_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-stack", "const char *")
-int
-pe__cluster_stack_xml(pcmk__output_t *out, va_list args) {
+static int
+cluster_stack_xml(pcmk__output_t *out, va_list args) {
     const char *stack_s = va_arg(args, const char *);
 
     pcmk__output_create_xml_node(out, "stack",
@@ -888,8 +888,8 @@ pe__cluster_stack_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-times", "const char *", "const char *", "const char *", "const char *")
-int
-pe__cluster_times_html(pcmk__output_t *out, va_list args) {
+static int
+cluster_times_html(pcmk__output_t *out, va_list args) {
     const char *last_written = va_arg(args, const char *);
     const char *user = va_arg(args, const char *);
     const char *client = va_arg(args, const char *);
@@ -912,8 +912,8 @@ pe__cluster_times_html(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("cluster-times", "const char *", "const char *", "const char *", "const char *")
-int
-pe__cluster_times_xml(pcmk__output_t *out, va_list args) {
+static int
+cluster_times_xml(pcmk__output_t *out, va_list args) {
     const char *last_written = va_arg(args, const char *);
     const char *user = va_arg(args, const char *);
     const char *client = va_arg(args, const char *);
@@ -962,8 +962,8 @@ pe__failed_action_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("failed-action", "xmlNodePtr")
-int
-pe__failed_action_xml(pcmk__output_t *out, va_list args) {
+static int
+failed_action_xml(pcmk__output_t *out, va_list args) {
     xmlNodePtr xml_op = va_arg(args, xmlNodePtr);
 
     const char *op_key = crm_element_value(xml_op, XML_LRM_ATTR_TASK_KEY);
@@ -1249,8 +1249,8 @@ pe__node_attribute_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node-attribute", "const char *", "const char *", "gboolean", "int")
-int
-pe__node_attribute_html(pcmk__output_t *out, va_list args) {
+static int
+node_attribute_html(pcmk__output_t *out, va_list args) {
     const char *name = va_arg(args, const char *);
     const char *value = va_arg(args, const char *);
     gboolean add_extra = va_arg(args, gboolean);
@@ -1279,8 +1279,8 @@ pe__node_attribute_html(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node-and-op", "pe_working_set_t *", "xmlNodePtr")
-int
-pe__node_and_op(pcmk__output_t *out, va_list args) {
+static int
+node_and_op(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
     xmlNodePtr xml_op = va_arg(args, xmlNodePtr);
 
@@ -1333,8 +1333,8 @@ pe__node_and_op(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node-and-op", "pe_working_set_t *", "xmlNodePtr")
-int
-pe__node_and_op_xml(pcmk__output_t *out, va_list args) {
+static int
+node_and_op_xml(pcmk__output_t *out, va_list args) {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
     xmlNodePtr xml_op = va_arg(args, xmlNodePtr);
 
@@ -1381,8 +1381,8 @@ pe__node_and_op_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node-attribute", "const char *", "const char *", "gboolean", "int")
-int
-pe__node_attribute_xml(pcmk__output_t *out, va_list args) {
+static int
+node_attribute_xml(pcmk__output_t *out, va_list args) {
     const char *name = va_arg(args, const char *);
     const char *value = va_arg(args, const char *);
     gboolean add_extra = va_arg(args, gboolean);
@@ -1403,8 +1403,8 @@ pe__node_attribute_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node-list", "GList *", "GList *", "GList *", "unsigned int", "gboolean", "gboolean", "gboolean")
-int
-pe__node_list_html(pcmk__output_t *out, va_list args) {
+static int
+node_list_html(pcmk__output_t *out, va_list args) {
     GList *nodes = va_arg(args, GList *);
     GList *only_node = va_arg(args, GList *);
     GList *only_rsc = va_arg(args, GList *);
@@ -1572,8 +1572,8 @@ pe__node_list_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("node-list", "GList *", "GList *", "GList *", "unsigned int", "gboolean", "gboolean", "gboolean")
-int
-pe__node_list_xml(pcmk__output_t *out, va_list args) {
+static int
+node_list_xml(pcmk__output_t *out, va_list args) {
     GList *nodes = va_arg(args, GList *);
     GList *only_node = va_arg(args, GList *);
     GList *only_rsc = va_arg(args, GList *);
@@ -1616,8 +1616,8 @@ pe__op_history_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("op-history", "xmlNodePtr", "const char *", "const char *", "int", "gboolean")
-int
-pe__op_history_xml(pcmk__output_t *out, va_list args) {
+static int
+op_history_xml(pcmk__output_t *out, va_list args) {
     xmlNodePtr xml_op = va_arg(args, xmlNodePtr);
     const char *task = va_arg(args, const char *);
     const char *interval_ms_s = va_arg(args, const char *);
@@ -1676,7 +1676,8 @@ pe__op_history_xml(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("resource-config", "pe_resource_t *", "gboolean")
-int pe__resource_config(pcmk__output_t *out, va_list args) {
+static int
+resource_config(pcmk__output_t *out, va_list args) {
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     gboolean raw = va_arg(args, gboolean);
 
@@ -1718,8 +1719,8 @@ pe__resource_history_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("resource-history", "pe_resource_t *", "const char *", "gboolean", "int", "time_t", "gboolean")
-int
-pe__resource_history_xml(pcmk__output_t *out, va_list args) {
+static int
+resource_history_xml(pcmk__output_t *out, va_list args) {
     pe_resource_t *rsc = va_arg(args, pe_resource_t *);
     const char *rsc_id = va_arg(args, const char *);
     gboolean all = va_arg(args, gboolean);
@@ -1762,8 +1763,8 @@ pe__resource_history_xml(pcmk__output_t *out, va_list args) {
 
 PCMK__OUTPUT_ARGS("resource-list", "pe_working_set_t *", "unsigned int", "gboolean",
                   "gboolean", "gboolean", "gboolean", "GList *", "GList *", "gboolean")
-int
-pe__resource_list(pcmk__output_t *out, va_list args)
+static int
+resource_list(pcmk__output_t *out, va_list args)
 {
     pe_working_set_t *data_set = va_arg(args, pe_working_set_t *);
     unsigned int print_opts = va_arg(args, unsigned int);
@@ -1861,8 +1862,8 @@ pe__resource_list(pcmk__output_t *out, va_list args)
 }
 
 PCMK__OUTPUT_ARGS("ticket", "pe_ticket_t *")
-int
-pe__ticket_html(pcmk__output_t *out, va_list args) {
+static int
+ticket_html(pcmk__output_t *out, va_list args) {
     pe_ticket_t *ticket = va_arg(args, pe_ticket_t *);
 
     if (ticket->last_granted > -1) {
@@ -1903,8 +1904,8 @@ pe__ticket_text(pcmk__output_t *out, va_list args) {
 }
 
 PCMK__OUTPUT_ARGS("ticket", "pe_ticket_t *")
-int
-pe__ticket_xml(pcmk__output_t *out, va_list args) {
+static int
+ticket_xml(pcmk__output_t *out, va_list args) {
     pe_ticket_t *ticket = va_arg(args, pe_ticket_t *);
 
     xmlNodePtr node = NULL;
@@ -1923,10 +1924,10 @@ pe__ticket_xml(pcmk__output_t *out, va_list args) {
 }
 
 static pcmk__message_entry_t fmt_functions[] = {
-    { "ban", "html", pe__ban_html },
+    { "ban", "html", ban_html },
     { "ban", "log", pe__ban_text },
     { "ban", "text", pe__ban_text },
-    { "ban", "xml", pe__ban_xml },
+    { "ban", "xml", ban_xml },
     { "bundle", "xml",  pe__bundle_xml },
     { "bundle", "html",  pe__bundle_html },
     { "bundle", "text",  pe__bundle_text },
@@ -1935,30 +1936,30 @@ static pcmk__message_entry_t fmt_functions[] = {
     { "clone", "html",  pe__clone_html },
     { "clone", "text",  pe__clone_text },
     { "clone", "log",  pe__clone_text },
-    { "cluster-counts", "html", pe__cluster_counts_html },
+    { "cluster-counts", "html", cluster_counts_html },
     { "cluster-counts", "log", pe__cluster_counts_text },
     { "cluster-counts", "text", pe__cluster_counts_text },
-    { "cluster-counts", "xml", pe__cluster_counts_xml },
-    { "cluster-dc", "html", pe__cluster_dc_html },
+    { "cluster-counts", "xml", cluster_counts_xml },
+    { "cluster-dc", "html", cluster_dc_html },
     { "cluster-dc", "log", pe__cluster_dc_text },
     { "cluster-dc", "text", pe__cluster_dc_text },
-    { "cluster-dc", "xml", pe__cluster_dc_xml },
-    { "cluster-options", "html", pe__cluster_options_html },
-    { "cluster-options", "log", pe__cluster_options_log },
+    { "cluster-dc", "xml", cluster_dc_xml },
+    { "cluster-options", "html", cluster_options_html },
+    { "cluster-options", "log", cluster_options_log },
     { "cluster-options", "text", pe__cluster_options_text },
-    { "cluster-options", "xml", pe__cluster_options_xml },
+    { "cluster-options", "xml", cluster_options_xml },
     { "cluster-summary", "default", pe__cluster_summary },
-    { "cluster-summary", "html", pe__cluster_summary_html },
-    { "cluster-stack", "html", pe__cluster_stack_html },
+    { "cluster-summary", "html", cluster_summary_html },
+    { "cluster-stack", "html", cluster_stack_html },
     { "cluster-stack", "log", pe__cluster_stack_text },
     { "cluster-stack", "text", pe__cluster_stack_text },
-    { "cluster-stack", "xml", pe__cluster_stack_xml },
-    { "cluster-times", "html", pe__cluster_times_html },
+    { "cluster-stack", "xml", cluster_stack_xml },
+    { "cluster-times", "html", cluster_times_html },
     { "cluster-times", "log", pe__cluster_times_text },
     { "cluster-times", "text", pe__cluster_times_text },
-    { "cluster-times", "xml", pe__cluster_times_xml },
+    { "cluster-times", "xml", cluster_times_xml },
     { "failed-action", "default", pe__failed_action_text },
-    { "failed-action", "xml", pe__failed_action_xml },
+    { "failed-action", "xml", failed_action_xml },
     { "group", "xml",  pe__group_xml },
     { "group", "html",  pe__group_html },
     { "group", "text",  pe__group_text },
@@ -1968,30 +1969,30 @@ static pcmk__message_entry_t fmt_functions[] = {
     { "node", "log", pe__node_text },
     { "node", "text", pe__node_text },
     { "node", "xml", pe__node_xml },
-    { "node-and-op", "default", pe__node_and_op },
-    { "node-and-op", "xml", pe__node_and_op_xml },
-    { "node-list", "html", pe__node_list_html },
+    { "node-and-op", "default", node_and_op },
+    { "node-and-op", "xml", node_and_op_xml },
+    { "node-list", "html", node_list_html },
     { "node-list", "log", pe__node_list_text },
     { "node-list", "text", pe__node_list_text },
-    { "node-list", "xml", pe__node_list_xml },
-    { "node-attribute", "html", pe__node_attribute_html },
+    { "node-list", "xml", node_list_xml },
+    { "node-attribute", "html", node_attribute_html },
     { "node-attribute", "log", pe__node_attribute_text },
     { "node-attribute", "text", pe__node_attribute_text },
-    { "node-attribute", "xml", pe__node_attribute_xml },
+    { "node-attribute", "xml", node_attribute_xml },
     { "op-history", "default", pe__op_history_text },
-    { "op-history", "xml", pe__op_history_xml },
+    { "op-history", "xml", op_history_xml },
     { "primitive", "xml",  pe__resource_xml },
     { "primitive", "html",  pe__resource_html },
     { "primitive", "text",  pe__resource_text },
     { "primitive", "log",  pe__resource_text },
-    { "resource-config", "default", pe__resource_config },
+    { "resource-config", "default", resource_config },
     { "resource-history", "default", pe__resource_history_text },
-    { "resource-history", "xml", pe__resource_history_xml },
-    { "resource-list", "default", pe__resource_list },
-    { "ticket", "html", pe__ticket_html },
+    { "resource-history", "xml", resource_history_xml },
+    { "resource-list", "default", resource_list },
+    { "ticket", "html", ticket_html },
     { "ticket", "log", pe__ticket_text },
     { "ticket", "text", pe__ticket_text },
-    { "ticket", "xml", pe__ticket_xml },
+    { "ticket", "xml", ticket_xml },
 
     { NULL, NULL, NULL }
 };
-- 
1.8.3.1