root/include/pcmki/pcmki_cluster_queries.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. pcmk__query_node_name

   1 /*
   2  * Copyright 2020-2022 the Pacemaker project contributors
   3  *
   4  * The version control history for this file may have further details.
   5  *
   6  * This source code is licensed under the GNU Lesser General Public License
   7  * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
   8  */
   9 
  10 #ifndef PCMK__PCMKI_PCMKI_CLUSTER_QUERIES__H
  11 #  define PCMK__PCMKI_PCMKI_CLUSTER_QUERIES__H
  12 
  13 #include <glib.h>               // gboolean, GMainLoop, etc.
  14 
  15 #include <crm/crm.h>
  16 #include <crm/common/output_internal.h>
  17 #include <crm/common/ipc_controld.h>
  18 #include <crm/common/ipc_pacemakerd.h>
  19 
  20 // CIB queries
  21 int pcmk__list_nodes(pcmk__output_t *out, const char *node_types,
  22                      gboolean bash_export);
  23 
  24 // Controller queries
  25 int pcmk__controller_status(pcmk__output_t *out, const char *node_name,
  26                             unsigned int message_timeout_ms);
  27 int pcmk__designated_controller(pcmk__output_t *out,
  28                                 unsigned int message_timeout_ms);
  29 int pcmk__pacemakerd_status(pcmk__output_t *out, const char *ipc_name,
  30                             unsigned int message_timeout_ms, bool show_output,
  31                             enum pcmk_pacemakerd_state *state);
  32 int pcmk__query_node_info(pcmk__output_t *out, uint32_t *node_id,
  33                           char **node_name, char **uuid, char **state,
  34                           bool *have_quorum, bool *is_remote, bool show_output,
  35                           unsigned int message_timeout_ms);
  36 
  37 /*!
  38  * \internal
  39  * \brief Get the node name corresponding to a node ID from the controller
  40  *
  41  * \param[in,out] out                 Output object
  42  * \param[in]     node_id             ID of node whose name to get (or 0 for
  43  *                                    the local node)
  44  * \param[out]    node_name           If not \p NULL, where to store the node
  45  *                                    name
  46  * \param[in]     message_timeout_ms  How long to wait for a reply from the
  47  *                                    \p pacemaker-controld API. If 0,
  48  *                                    \p pcmk_ipc_dispatch_sync will be used.
  49  *                                    Otherwise, \p pcmk_ipc_dispatch_poll will
  50  *                                    be used.
  51  *
  52  * \return Standard Pacemaker return code
  53  *
  54  * \note The caller is responsible for freeing \p *node_name using \p free().
  55  */
  56 static inline int
  57 pcmk__query_node_name(pcmk__output_t *out, uint32_t nodeid, char **node_name,
     /* [previous][next][first][last][top][bottom][index][help] */
  58                       unsigned int message_timeout_ms)
  59 {
  60     return pcmk__query_node_info(out, &nodeid, node_name, NULL, NULL, NULL,
  61                                  NULL, false, message_timeout_ms);
  62 }
  63 
  64 // pacemakerd queries
  65 int pcmk__pacemakerd_status(pcmk__output_t *out, const char *ipc_name,
  66                             unsigned int message_timeout_ms, bool show_output,
  67                             enum pcmk_pacemakerd_state *state);
  68 
  69 #endif

/* [previous][next][first][last][top][bottom][index][help] */