root/include/pcmki/pcmki_ticket.h

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

INCLUDED FROM


   1 /*
   2  * Copyright 2024 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_TICKET__H
  11 #define PCMK__PCMKI_PCMKI_TICKET__H
  12 
  13 #include <crm/common/output_internal.h>
  14 
  15 #include <crm/cib/cib_types.h>
  16 
  17 #ifdef __cplusplus
  18 extern "C" {
  19 #endif
  20 
  21 /*!
  22  * \internal
  23  * \brief Return the state XML for a given ticket
  24  *
  25  * \param[in]  cib          Open CIB connection
  26  * \param[in]  ticket_id    Ticket to get state for, or \c NULL for all tickets
  27  * \param[out] state        Where to store the result XML
  28  *
  29  * \return Standard Pacemaker return code
  30  *
  31  * \note If \p ticket_id is not \c NULL and more than one ticket exists with
  32  *       that ID, this function returns \c pcmk_rc_duplicate_id.
  33  */
  34 int pcmk__get_ticket_state(cib_t *cib, const char *ticket_id, xmlNode **state);
  35 
  36 /*!
  37  * \internal
  38  * \brief Display the constraints that apply to a given ticket
  39  *
  40  * \param[in,out]   out         Output object
  41  * \param[in]       cib         Open CIB connection
  42  * \param[in]       ticket_id   Ticket to find constraints for,
  43  *                              or \c NULL for all ticket constraints
  44  *
  45  * \return Standard Pacemaker return code
  46  */
  47 int pcmk__ticket_constraints(pcmk__output_t *out, cib_t *cib, const char *ticket_id);
  48 
  49 /*!
  50  * \internal
  51  * \brief Delete a ticket's state from the local cluster site
  52  *
  53  * \param[in,out]   out         Output object
  54  * \param[in]       cib         Open CIB connection
  55  * \param[in]       scheduler   Scheduler data
  56  * \param[in]       ticket_id   Ticket to delete
  57  * \param[in]       force       If \c true, delete the ticket even if it has
  58  *                              been granted
  59  *
  60  * \return Standard Pacemaker return code
  61  */
  62 int pcmk__ticket_delete(pcmk__output_t *out, cib_t *cib, pcmk_scheduler_t *scheduler,
  63                         const char *ticket_id, bool force);
  64 
  65 /*!
  66  * \internal
  67  * \brief Return the value of a ticket's attribute
  68  *
  69  * \param[in,out]   out             Output object
  70  * \param[in,out]   scheduler       Scheduler data
  71  * \param[in]       ticket_id       Ticket to find attribute value for
  72  * \param[in]       attr_name       Attribute's name to find value for
  73  * \param[in]       attr_default    If either the ticket or the attribute do not
  74  *                                  exist, use this as the value in the output
  75  *
  76  * \return Standard Pacemaker return code
  77  */
  78 int pcmk__ticket_get_attr(pcmk__output_t *out, pcmk_scheduler_t *scheduler,
  79                           const char *ticket_id, const char *attr_name,
  80                           const char *attr_default);
  81 
  82 /*!
  83  * \brief Return information about the given ticket
  84  *
  85  * \param[in,out] out           Output object
  86  * \param[in,out] scheduler     Scheduler data
  87  * \param[in]     ticket_id     Ticket to display info for, or \c NULL for
  88  *                              all tickets
  89  * \param[in]     details       If true (and \p out is not an XML format
  90  *                              object), output any additional attributes
  91  *                              set on a ticket beyond the basics
  92  * \param[in]     raw           If true (and \p out is not an XML format
  93  *                              object), simply list the IDs of all tickets.
  94  *                              This does not make a lot of sense if
  95  *                              \p ticket_id is not NULL, but that will not
  96  *                              raise an error.
  97  *
  98  * \return Standard Pacemaker return code
  99  */
 100 int pcmk__ticket_info(pcmk__output_t *out, pcmk_scheduler_t *scheduler,
 101                       const char *ticket_id, bool details, bool raw);
 102 
 103 /*!
 104  * \brief Remove the given attribute(s) from a ticket
 105  *
 106  * \param[in,out] out           Output object
 107  * \param[in]     cib           Open CIB connection
 108  * \param[in,out] scheduler     Scheduler data
 109  * \param[in]     ticket_id     Ticket to remove attributes from
 110  * \param[in]     attr_delete   A list of attribute names
 111  * \param[in]     force         Attempting to remove the granted attribute of
 112  *                              \p ticket_id will cause this function to return
 113  *                              \c EACCES unless \p force is set to \c true
 114  *
 115  * \return Standard Pacemaker return code
 116  */
 117 int pcmk__ticket_remove_attr(pcmk__output_t *out, cib_t *cib, pcmk_scheduler_t *scheduler,
 118                              const char *ticket_id, GList *attr_delete, bool force);
 119 
 120 /*!
 121  * \brief Set the given attribute(s) on a ticket
 122  *
 123  * \param[in,out] out           Output object
 124  * \param[in]     cib           Open CIB connection
 125  * \param[in,out] scheduler     Scheduler data
 126  * \param[in]     ticket_id     Ticket to set attributes on
 127  * \param[in]     attr_set      A hash table of attributes, where keys are the
 128  *                              attribute names and the values are the attribute
 129  *                              values
 130  * \param[in]     force         Attempting to change the granted status of
 131  *                              \p ticket_id will cause this function to return
 132  *                              \c EACCES unless \p force is set to \c true
 133  *
 134  * \return Standard Pacemaker return code
 135  *
 136  * \note If no \p ticket_id attribute exists but \p attr_set is non-NULL, the
 137  *       ticket will be created with the given attributes.
 138  */
 139 int pcmk__ticket_set_attr(pcmk__output_t *out, cib_t *cib, pcmk_scheduler_t *scheduler,
 140                           const char *ticket_id, GHashTable *attr_set, bool force);
 141 
 142 /*!
 143  * \internal
 144  * \brief Return a ticket's state XML
 145  *
 146  * \param[in,out]   out         Output object
 147  * \param[in]       cib         Open CIB connection
 148  * \param[in]       ticket_id   Ticket to find constraints for,
 149  *                              or \c NULL for all ticket constraints
 150  *
 151  * \return Standard Pacemaker return code
 152  *
 153  * \note If \p ticket_id is not \c NULL and more than one ticket exists with
 154  *       that ID, this function returns \c pcmk_rc_duplicate_id.
 155  */
 156 int pcmk__ticket_state(pcmk__output_t *out, cib_t *cib, const char *ticket_id);
 157 
 158 #ifdef __cplusplus
 159 }
 160 #endif
 161 
 162 #endif // PCMK__PCMKI_PCMKI_TICKET__H

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