Blame SOURCES/014-feature-set.patch

c563b9
From 0700a4814a598d0e2e9bd54f970c6d3ff66184df Mon Sep 17 00:00:00 2001
c563b9
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
c563b9
Date: Tue, 24 Nov 2020 16:17:34 +0100
c563b9
Subject: [PATCH 1/2] Refactor: move stonith__register_messages() call from
c563b9
 pcmk__out_prologue() to the calling functions
c563b9
c563b9
---
c563b9
 lib/pacemaker/pcmk_fence.c  | 14 ++++++++++++++
c563b9
 lib/pacemaker/pcmk_output.c |  1 -
c563b9
 2 files changed, 14 insertions(+), 1 deletion(-)
c563b9
c563b9
diff --git a/lib/pacemaker/pcmk_fence.c b/lib/pacemaker/pcmk_fence.c
c563b9
index 7beedff..d591379 100644
c563b9
--- a/lib/pacemaker/pcmk_fence.c
c563b9
+++ b/lib/pacemaker/pcmk_fence.c
c563b9
@@ -247,6 +247,8 @@ pcmk_fence_history(xmlNodePtr *xml, stonith_t *st, char *target, unsigned int ti
c563b9
         return rc;
c563b9
     }
c563b9
 
c563b9
+    stonith__register_messages(out);
c563b9
+
c563b9
     out->quiet = quiet;
c563b9
 
c563b9
     rc = pcmk__fence_history(out, st, target, timeout, verbose, broadcast, cleanup);
c563b9
@@ -287,6 +289,8 @@ pcmk_fence_installed(xmlNodePtr *xml, stonith_t *st, unsigned int timeout) {
c563b9
         return rc;
c563b9
     }
c563b9
 
c563b9
+    stonith__register_messages(out);
c563b9
+
c563b9
     rc = pcmk__fence_installed(out, st, timeout);
c563b9
     pcmk__out_epilogue(out, xml, rc);
c563b9
     return rc;
c563b9
@@ -321,6 +325,8 @@ pcmk_fence_last(xmlNodePtr *xml, const char *target, bool as_nodeid) {
c563b9
         return rc;
c563b9
     }
c563b9
 
c563b9
+    stonith__register_messages(out);
c563b9
+
c563b9
     rc = pcmk__fence_last(out, target, as_nodeid);
c563b9
     pcmk__out_epilogue(out, xml, rc);
c563b9
     return rc;
c563b9
@@ -364,6 +370,8 @@ pcmk_fence_list_targets(xmlNodePtr *xml, stonith_t *st, const char *device_id,
c563b9
         return rc;
c563b9
     }
c563b9
 
c563b9
+    stonith__register_messages(out);
c563b9
+
c563b9
     rc = pcmk__fence_list_targets(out, st, device_id, timeout);
c563b9
     pcmk__out_epilogue(out, xml, rc);
c563b9
     return rc;
c563b9
@@ -398,6 +406,8 @@ pcmk_fence_metadata(xmlNodePtr *xml, stonith_t *st, char *agent,
c563b9
         return rc;
c563b9
     }
c563b9
 
c563b9
+    stonith__register_messages(out);
c563b9
+
c563b9
     rc = pcmk__fence_metadata(out, st, agent, timeout);
c563b9
     pcmk__out_epilogue(out, xml, rc);
c563b9
     return rc;
c563b9
@@ -442,6 +452,8 @@ pcmk_fence_registered(xmlNodePtr *xml, stonith_t *st, char *target,
c563b9
         return rc;
c563b9
     }
c563b9
 
c563b9
+    stonith__register_messages(out);
c563b9
+
c563b9
     rc = pcmk__fence_registered(out, st, target, timeout);
c563b9
     pcmk__out_epilogue(out, xml, rc);
c563b9
     return rc;
c563b9
@@ -501,6 +513,8 @@ pcmk_fence_validate(xmlNodePtr *xml, stonith_t *st, const char *agent,
c563b9
         return rc;
c563b9
     }
c563b9
 
c563b9
+    stonith__register_messages(out);
c563b9
+
c563b9
     rc = pcmk__fence_validate(out, st, agent, id, params, timeout);
c563b9
     pcmk__out_epilogue(out, xml, rc);
c563b9
     return rc;
c563b9
diff --git a/lib/pacemaker/pcmk_output.c b/lib/pacemaker/pcmk_output.c
c563b9
index 74a7c59..a637031 100644
c563b9
--- a/lib/pacemaker/pcmk_output.c
c563b9
+++ b/lib/pacemaker/pcmk_output.c
c563b9
@@ -34,7 +34,6 @@ pcmk__out_prologue(pcmk__output_t **out, xmlNodePtr *xml) {
c563b9
         return rc;
c563b9
     }
c563b9
 
c563b9
-    stonith__register_messages(*out);
c563b9
     return rc;
c563b9
 }
c563b9
 
c563b9
-- 
c563b9
1.8.3.1
c563b9
c563b9
c563b9
From 27677a6d03ba42aeb0d6a971df9d9b8861232903 Mon Sep 17 00:00:00 2001
c563b9
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
c563b9
Date: Tue, 24 Nov 2020 16:19:59 +0100
c563b9
Subject: [PATCH 2/2] API: libpacemaker: add public API functions for cluster
c563b9
 queries
c563b9
c563b9
---
c563b9
 include/pacemaker.h                  | 45 +++++++++++++++++++++-
c563b9
 lib/pacemaker/pcmk_cluster_queries.c | 75 ++++++++++++++++++++++++++++++++++++
c563b9
 2 files changed, 118 insertions(+), 2 deletions(-)
c563b9
c563b9
diff --git a/include/pacemaker.h b/include/pacemaker.h
c563b9
index a1e76d0..b2a73cd 100644
c563b9
--- a/include/pacemaker.h
c563b9
+++ b/include/pacemaker.h
c563b9
@@ -14,8 +14,6 @@
c563b9
 extern "C" {
c563b9
 #endif
c563b9
 
c563b9
-#ifdef BUILD_PUBLIC_LIBPACEMAKER
c563b9
-
c563b9
 /**
c563b9
  * \file
c563b9
  * \brief High Level API
c563b9
@@ -26,6 +24,49 @@ extern "C" {
c563b9
 #  include <libxml/tree.h>
c563b9
 
c563b9
 /*!
c563b9
+ * \brief Get controller status
c563b9
+ *
c563b9
+ * \param[in,out] xml                The destination for the result, as an XML tree.
c563b9
+ * \param[in]     dest_node          Destination node for request
c563b9
+ * \param[in]     message_timeout_ms Message timeout
c563b9
+ *
c563b9
+ * \return Standard Pacemaker return code
c563b9
+ */
c563b9
+int pcmk_controller_status(xmlNodePtr *xml, char *dest_node, unsigned int message_timeout_ms);
c563b9
+
c563b9
+/*!
c563b9
+ * \brief Get designated controller
c563b9
+ *
c563b9
+ * \param[in,out] xml                The destination for the result, as an XML tree.
c563b9
+ * \param[in]     message_timeout_ms Message timeout
c563b9
+ *
c563b9
+ * \return Standard Pacemaker return code
c563b9
+ */
c563b9
+int pcmk_designated_controller(xmlNodePtr *xml, unsigned int message_timeout_ms);
c563b9
+
c563b9
+/*!
c563b9
+ * \brief Get pacemakerd status
c563b9
+ *
c563b9
+ * \param[in,out] xml                The destination for the result, as an XML tree.
c563b9
+ * \param[in]     ipc_name           IPC name for request
c563b9
+ * \param[in]     message_timeout_ms Message timeout
c563b9
+ *
c563b9
+ * \return Standard Pacemaker return code
c563b9
+ */
c563b9
+int pcmk_pacemakerd_status(xmlNodePtr *xml, char *ipc_name, unsigned int message_timeout_ms);
c563b9
+
c563b9
+#ifdef BUILD_PUBLIC_LIBPACEMAKER
c563b9
+
c563b9
+/*!
c563b9
+ * \brief Get nodes list
c563b9
+ *
c563b9
+ * \param[in,out] xml                The destination for the result, as an XML tree.
c563b9
+ *
c563b9
+ * \return Standard Pacemaker return code
c563b9
+ */
c563b9
+int pcmk_list_nodes(xmlNodePtr *xml);
c563b9
+
c563b9
+/*!
c563b9
  * \brief Perform a STONITH action.
c563b9
  *
c563b9
  * \param[in] st        A connection to the STONITH API.
c563b9
diff --git a/lib/pacemaker/pcmk_cluster_queries.c b/lib/pacemaker/pcmk_cluster_queries.c
c563b9
index 8d729eb..c705b7f 100644
c563b9
--- a/lib/pacemaker/pcmk_cluster_queries.c
c563b9
+++ b/lib/pacemaker/pcmk_cluster_queries.c
c563b9
@@ -1,6 +1,7 @@
c563b9
 #include <glib.h>               // gboolean, GMainLoop, etc.
c563b9
 #include <libxml/tree.h>        // xmlNode
c563b9
 
c563b9
+#include <pacemaker.h>
c563b9
 #include <pacemaker-internal.h>
c563b9
 
c563b9
 #include <crm/crm.h>
c563b9
@@ -282,6 +283,24 @@ pcmk__controller_status(pcmk__output_t *out, char *dest_node, guint message_time
c563b9
 }
c563b9
 
c563b9
 int
c563b9
+pcmk_controller_status(xmlNodePtr *xml, char *dest_node, unsigned int message_timeout_ms)
c563b9
+{
c563b9
+    pcmk__output_t *out = NULL;
c563b9
+    int rc = pcmk_rc_ok;
c563b9
+
c563b9
+    rc = pcmk__out_prologue(&out, xml);
c563b9
+    if (rc != pcmk_rc_ok) {
c563b9
+        return rc;
c563b9
+    }
c563b9
+
c563b9
+    pcmk__register_lib_messages(out);
c563b9
+
c563b9
+    rc = pcmk__controller_status(out, dest_node, (guint) message_timeout_ms);
c563b9
+    pcmk__out_epilogue(out, xml, rc);
c563b9
+    return rc;
c563b9
+}
c563b9
+
c563b9
+int
c563b9
 pcmk__designated_controller(pcmk__output_t *out, guint message_timeout_ms)
c563b9
 {
c563b9
     data_t data = {
c563b9
@@ -309,6 +328,24 @@ pcmk__designated_controller(pcmk__output_t *out, guint message_timeout_ms)
c563b9
 }
c563b9
 
c563b9
 int
c563b9
+pcmk_designated_controller(xmlNodePtr *xml, unsigned int message_timeout_ms)
c563b9
+{
c563b9
+    pcmk__output_t *out = NULL;
c563b9
+    int rc = pcmk_rc_ok;
c563b9
+
c563b9
+    rc = pcmk__out_prologue(&out, xml);
c563b9
+    if (rc != pcmk_rc_ok) {
c563b9
+        return rc;
c563b9
+    }
c563b9
+
c563b9
+    pcmk__register_lib_messages(out);
c563b9
+
c563b9
+    rc = pcmk__designated_controller(out, (guint) message_timeout_ms);
c563b9
+    pcmk__out_epilogue(out, xml, rc);
c563b9
+    return rc;
c563b9
+}
c563b9
+
c563b9
+int
c563b9
 pcmk__pacemakerd_status(pcmk__output_t *out, char *ipc_name, guint message_timeout_ms)
c563b9
 {
c563b9
     data_t data = {
c563b9
@@ -335,6 +372,24 @@ pcmk__pacemakerd_status(pcmk__output_t *out, char *ipc_name, guint message_timeo
c563b9
     return data.rc;
c563b9
 }
c563b9
 
c563b9
+int
c563b9
+pcmk_pacemakerd_status(xmlNodePtr *xml, char *ipc_name, unsigned int message_timeout_ms)
c563b9
+{
c563b9
+    pcmk__output_t *out = NULL;
c563b9
+    int rc = pcmk_rc_ok;
c563b9
+
c563b9
+    rc = pcmk__out_prologue(&out, xml);
c563b9
+    if (rc != pcmk_rc_ok) {
c563b9
+        return rc;
c563b9
+    }
c563b9
+
c563b9
+    pcmk__register_lib_messages(out);
c563b9
+
c563b9
+    rc = pcmk__pacemakerd_status(out, ipc_name, (guint) message_timeout_ms);
c563b9
+    pcmk__out_epilogue(out, xml, rc);
c563b9
+    return rc;
c563b9
+}
c563b9
+
c563b9
 // \return Standard Pacemaker return code
c563b9
 int
c563b9
 pcmk__list_nodes(pcmk__output_t *out, gboolean BASH_EXPORT)
c563b9
@@ -361,6 +416,26 @@ pcmk__list_nodes(pcmk__output_t *out, gboolean BASH_EXPORT)
c563b9
     return pcmk_legacy2rc(rc);
c563b9
 }
c563b9
 
c563b9
+#ifdef BUILD_PUBLIC_LIBPACEMAKER
c563b9
+int
c563b9
+pcmk_list_nodes(xmlNodePtr *xml)
c563b9
+{
c563b9
+    pcmk__output_t *out = NULL;
c563b9
+    int rc = pcmk_rc_ok;
c563b9
+
c563b9
+    rc = pcmk__out_prologue(&out, xml);
c563b9
+    if (rc != pcmk_rc_ok) {
c563b9
+        return rc;
c563b9
+    }
c563b9
+
c563b9
+    pcmk__register_lib_messages(out);
c563b9
+
c563b9
+    rc = pcmk__list_nodes(out, FALSE);
c563b9
+    pcmk__out_epilogue(out, xml, rc);
c563b9
+    return rc;
c563b9
+}
c563b9
+#endif
c563b9
+
c563b9
 // remove when parameters removed from tools/crmadmin.c
c563b9
 int
c563b9
 pcmk__shutdown_controller(pcmk__output_t *out, char *dest_node)
c563b9
-- 
c563b9
1.8.3.1
c563b9