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-2023 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 <stdbool.h>
  14 #include <stdint.h>
  15 
  16 #include <crm/crm.h>
  17 #include <crm/common/output_internal.h>
  18 #include <crm/common/ipc_controld.h>
  19 #include <crm/common/ipc_pacemakerd.h>
  20 
  21 // CIB queries
  22 int pcmk__list_nodes(pcmk__output_t *out, const char *node_types,
  23                      bool bash_export);
  24 
  25 // Controller queries
  26 int pcmk__controller_status(pcmk__output_t *out, const char *node_name,
  27                             unsigned int message_timeout_ms);
  28 int pcmk__designated_controller(pcmk__output_t *out,
  29                                 unsigned int message_timeout_ms);
  30 int pcmk__pacemakerd_status(pcmk__output_t *out, const char *ipc_name,
  31                             unsigned int message_timeout_ms, bool show_output,
  32                             enum pcmk_pacemakerd_state *state);
  33 int pcmk__query_node_info(pcmk__output_t *out, uint32_t *node_id,
  34                           char **node_name, char **uuid, char **state,
  35                           bool *have_quorum, bool *is_remote, bool show_output,
  36                           unsigned int message_timeout_ms);
  37 
  38 /*!
  39  * \internal
  40  * \brief Get the node name corresponding to a node ID from the controller
  41  *
  42  * \param[in,out] out                 Output object
  43  * \param[in]     node_id             ID of node whose name to get (or 0 for
  44  *                                    the local node)
  45  * \param[out]    node_name           If not \p NULL, where to store the node
  46  *                                    name
  47  * \param[in]     message_timeout_ms  How long to wait for a reply from the
  48  *                                    \p pacemaker-controld API. If 0,
  49  *                                    \p pcmk_ipc_dispatch_sync will be used.
  50  *                                    Otherwise, \p pcmk_ipc_dispatch_poll will
  51  *                                    be used.
  52  *
  53  * \return Standard Pacemaker return code
  54  *
  55  * \note The caller is responsible for freeing \p *node_name using \p free().
  56  */
  57 static inline int
  58 pcmk__query_node_name(pcmk__output_t *out, uint32_t nodeid, char **node_name,
     /* [previous][next][first][last][top][bottom][index][help] */
  59                       unsigned int message_timeout_ms)
  60 {
  61     return pcmk__query_node_info(out, &nodeid, node_name, NULL, NULL, NULL,
  62                                  NULL, false, message_timeout_ms);
  63 }
  64 
  65 // pacemakerd queries
  66 int pcmk__pacemakerd_status(pcmk__output_t *out, const char *ipc_name,
  67                             unsigned int message_timeout_ms, bool show_output,
  68                             enum pcmk_pacemakerd_state *state);
  69 
  70 #endif

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