root/include/crm/common/resources.h

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

INCLUDED FROM


   1 /*
   2  * Copyright 2004-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__CRM_COMMON_RESOURCES__H
  11 #define PCMK__CRM_COMMON_RESOURCES__H
  12 
  13 #include <stdbool.h>                    // bool
  14 #include <sys/types.h>                  // time_t
  15 #include <libxml/tree.h>                // xmlNode
  16 #include <glib.h>                       // gboolean, guint, GList, GHashTable
  17 
  18 #include <crm/common/roles.h>           // enum rsc_role_e
  19 #include <crm/common/scheduler_types.h> // pcmk_resource_t, etc.
  20 
  21 #ifdef __cplusplus
  22 extern "C" {
  23 #endif
  24 
  25 /*!
  26  * \file
  27  * \brief Scheduler API for resources
  28  * \ingroup core
  29  */
  30 
  31 //! Search options for resources (exact resource ID always matches)
  32 enum pe_find {
  33     //! Also match clone instance ID from resource history
  34     pcmk_rsc_match_history          = (1 << 0),
  35 
  36     //! Also match anonymous clone instances by base name
  37     pcmk_rsc_match_anon_basename    = (1 << 1),
  38 
  39     //! Match only clones and their instances, by either clone or instance ID
  40     pcmk_rsc_match_clone_only       = (1 << 2),
  41 
  42     //! If matching by node, compare current node instead of assigned node
  43     pcmk_rsc_match_current_node     = (1 << 3),
  44 
  45     //! Match clone instances (even unique) by base name as well as exact ID
  46     pcmk_rsc_match_basename         = (1 << 5),
  47 };
  48 
  49 //! \internal Do not use
  50 typedef struct pcmk__resource_private pcmk__resource_private_t;
  51 
  52 // Implementation of pcmk_resource_t
  53 // @COMPAT Make this internal when we can break API backward compatibility
  54 //!@{
  55 //! \deprecated Do not use (public access will be removed in a future release)
  56 struct pcmk__resource {
  57     /* @COMPAT Once all members are moved to pcmk__resource_private_t,
  58      * We can make that the pcmk_resource_t implementation and drop this
  59      * struct altogether, leaving pcmk_resource_t as an opaque public type.
  60      */
  61     pcmk__resource_private_t *priv;
  62 
  63     // NOTE: sbd (as of at least 1.5.2) uses this
  64     //! \deprecated Call pcmk_resource_id() instead
  65     char *id;                           // Resource ID in configuration
  66 
  67     // NOTE: sbd (as of at least 1.5.2) uses this
  68     //! \deprecated Call pcmk_resource_is_managed() instead
  69     unsigned long long flags;       // Group of enum pcmk__rsc_flags
  70 };
  71 //!@}
  72 
  73 const char *pcmk_resource_id(const pcmk_resource_t *rsc);
  74 bool pcmk_resource_is_managed(const pcmk_resource_t *rsc);
  75 
  76 #ifdef __cplusplus
  77 }
  78 #endif
  79 
  80 #endif // PCMK__CRM_COMMON_RESOURCES__H

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