root/include/pacemaker.h

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

INCLUDED FROM


   1 /*
   2  * Copyright 2019 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 PACEMAKER__H
  11 #  define PACEMAKER__H
  12 
  13 #ifdef __cplusplus
  14 extern "C" {
  15 #endif
  16 
  17 #ifdef BUILD_PUBLIC_LIBPACEMAKER
  18 
  19 /**
  20  * \file
  21  * \brief High Level API
  22  * \ingroup pacemaker
  23  */
  24 
  25 #  include <crm/stonith-ng.h>
  26 #  include <libxml/tree.h>
  27 
  28 /*!
  29  * \brief Perform a STONITH action.
  30  *
  31  * \param[in] st        A connection to the STONITH API.
  32  * \param[in] target    The node receiving the action.
  33  * \param[in] action    The action to perform.
  34  * \param[in] name      Who requested the fence action?
  35  * \param[in] timeout   How long to wait for the operation to complete (in ms).
  36  * \param[in] tolerance If a successful action for \p target happened within
  37  *                      this many ms, return 0 without performing the action
  38  *                      again.
  39  * \param[in] delay     Apply a fencing delay. Value -1 means disable also any
  40  *                      static/random fencing delays from pcmk_delay_base/max.
  41  *
  42  * \return Standard Pacemaker return code
  43  */
  44 int pcmk_fence_action(stonith_t *st, const char *target, const char *action,
  45                       const char *name, unsigned int timeout, unsigned int tolerance,
  46                       int delay);
  47 
  48 /*!
  49  * \brief List the fencing operations that have occurred for a specific node.
  50  *
  51  * \note If \p xml is not NULL, it will be freed first and the previous
  52  *       contents lost.
  53  *
  54  * \param[in,out] xml       The destination for the result, as an XML tree.
  55  * \param[in]     st        A connection to the STONITH API.
  56  * \param[in]     target    The node to get history for.
  57  * \param[in]     timeout   How long to wait for the operation to complete (in ms).
  58  * \param[in]     quiet     Suppress most output.
  59  * \param[in]     verbose   Include additional output.
  60  * \param[in]     broadcast Gather fencing history from all nodes.
  61  * \param[in]     cleanup   Clean up fencing history after listing.
  62  *
  63  * \return Standard Pacemaker return code
  64  */
  65 int pcmk_fence_history(xmlNodePtr *xml, stonith_t *st, char *target,
  66                        unsigned int timeout, bool quiet, int verbose,
  67                        bool broadcast, bool cleanup);
  68 
  69 /*!
  70  * \brief List all installed STONITH agents.
  71  *
  72  * \note If \p xml is not NULL, it will be freed first and the previous
  73  *       contents lost.
  74  *
  75  * \param[in,out] xml     The destination for the result, as an XML tree.
  76  * \param[in]     st      A connection to the STONITH API.
  77  * \param[in]     timeout How long to wait for the operation to complete (in ms).
  78  *
  79  * \return Standard Pacemaker return code
  80  */
  81 int pcmk_fence_installed(xmlNodePtr *xml, stonith_t *st, unsigned int timeout);
  82 
  83 /*!
  84  * \brief When was a device last fenced?
  85  *
  86  * \note If \p xml is not NULL, it will be freed first and the previous
  87  *       contents lost.
  88  *
  89  * \param[in,out] xml       The destination for the result, as an XML tree.
  90  * \param[in]     target    The node that was fenced.
  91  * \param[in]     as_nodeid
  92  *
  93  * \return Standard Pacemaker return code
  94  */
  95 int pcmk_fence_last(xmlNodePtr *xml, const char *target, bool as_nodeid);
  96 
  97 /*!
  98  * \brief List nodes that can be fenced.
  99  *
 100  * \note If \p xml is not NULL, it will be freed first and the previous
 101  *       contents lost.
 102  *
 103  * \param[in,out] xml        The destination for the result, as an XML tree
 104  * \param[in]     st         A connection to the STONITH API
 105  * \param[in]     device_id  Resource ID of fence device to check
 106  * \param[in]     timeout    How long to wait for the operation to complete (in ms)
 107  *
 108  * \return Standard Pacemaker return code
 109  */
 110 int pcmk_fence_list_targets(xmlNodePtr *xml, stonith_t *st,
 111                             const char *device_id, unsigned int timeout);
 112 
 113 /*!
 114  * \brief Get metadata for a resource.
 115  *
 116  * \note If \p xml is not NULL, it will be freed first and the previous
 117  *       contents lost.
 118  *
 119  * \param[in,out] xml     The destination for the result, as an XML tree.
 120  * \param[in]     st      A connection to the STONITH API.
 121  * \param[in]     agent   The fence agent to get metadata for.
 122  * \param[in]     timeout How long to wait for the operation to complete (in ms).
 123  *
 124  * \return Standard Pacemaker return code
 125  */
 126 int pcmk_fence_metadata(xmlNodePtr *xml, stonith_t *st, char *agent,
 127                         unsigned int timeout);
 128 
 129 /*!
 130  * \brief List registered fence devices.
 131  *
 132  * \note If \p xml is not NULL, it will be freed first and the previous
 133  *       contents lost.
 134  *
 135  * \param[in,out] xml     The destination for the result, as an XML tree.
 136  * \param[in]     st      A connection to the STONITH API.
 137  * \param[in]     target  If not NULL, only return devices that can fence
 138  *                        this node.
 139  * \param[in]     timeout How long to wait for the operation to complete (in ms).
 140  *
 141  * \return Standard Pacemaker return code
 142  */
 143 int pcmk_fence_registered(xmlNodePtr *xml, stonith_t *st, char *target,
 144                           unsigned int timeout);
 145 
 146 /*!
 147  * \brief Register a fencing level for a specific node, node regex, or attribute.
 148  *
 149  * \p target can take three different forms:
 150  *   - name=value, in which case \p target is an attribute.
 151  *   - @pattern, in which case \p target is a node regex.
 152  *   - Otherwise, \p target is a node name.
 153  *
 154  * \param[in] st          A connection to the STONITH API.
 155  * \param[in] target      The object to register a fencing level for.
 156  * \param[in] fence_level Index number of level to add.
 157  * \param[in] devices     Devices to use in level.
 158  *
 159  * \return Standard Pacemaker return code
 160  */
 161 int pcmk_fence_register_level(stonith_t *st, char *target, int fence_level,
 162                               stonith_key_value_t *devices);
 163 
 164 /*!
 165  * \brief Unregister a fencing level for a specific node, node regex, or attribute.
 166  *
 167  * \p target can take three different forms:
 168  *   - name=value, in which case \p target is an attribute.
 169  *   - @pattern, in which case \p target is a node regex.
 170  *   - Otherwise, \p target is a node name.
 171  *
 172  * \param[in] st          A connection to the STONITH API.
 173  * \param[in] target      The object to unregister a fencing level for.
 174  * \param[in] fence_level Index number of level to remove.
 175  *
 176  * \return Standard Pacemaker return code
 177  */
 178 int pcmk_fence_unregister_level(stonith_t *st, char *target, int fence_level);
 179 
 180 /*!
 181  * \brief Validate a STONITH device configuration.
 182  *
 183  * \note If \p xml is not NULL, it will be freed first and the previous
 184  *       contents lost.
 185  *
 186  * \param[in,out] xml     The destination for the result, as an XML tree.
 187  * \param[in]     st      A connection to the STONITH API.
 188  * \param[in]     agent   The agent to validate (for example, "fence_xvm").
 189  * \param[in]     id      STONITH device ID (may be NULL).
 190  * \param[in]     params  STONITH device configuration parameters.
 191  * \param[in]     timeout How long to wait for the operation to complete (in ms).
 192  *
 193  * \return Standard Pacemaker return code
 194  */
 195 int pcmk_fence_validate(xmlNodePtr *xml, stonith_t *st, const char *agent,
 196                         const char *id, stonith_key_value_t *params,
 197                         unsigned int timeout);
 198 
 199 #endif
 200 
 201 #ifdef __cplusplus
 202 }
 203 #endif
 204 
 205 #endif

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