root/include/crm/pengine/status.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. pe_rsc_is_clone
  2. pe_rsc_is_unique_clone
  3. pe_rsc_is_anon_clone
  4. pe_rsc_is_bundled

   1 /*
   2  * Copyright 2004-2020 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_PENGINE_STATUS__H
  11 #  define PCMK__CRM_PENGINE_STATUS__H
  12 
  13 #  include <glib.h>                 // gboolean
  14 #  include <stdbool.h>              // bool
  15 #  include <crm/common/util.h>      // pcmk_is_set()
  16 #  include <crm/common/iso8601.h>
  17 #  include <crm/pengine/common.h>
  18 #  include <crm/pengine/pe_types.h> // pe_node_t, pe_resource_t, etc.
  19 #  include <crm/pengine/complex.h>
  20 
  21 #ifdef __cplusplus
  22 extern "C" {
  23 #endif
  24 
  25 /*!
  26  * \file
  27  * \brief Cluster status and scheduling
  28  * \ingroup pengine
  29  */
  30 
  31 const char *rsc_printable_id(pe_resource_t *rsc);
  32 gboolean cluster_status(pe_working_set_t * data_set);
  33 pe_working_set_t *pe_new_working_set(void);
  34 void pe_free_working_set(pe_working_set_t *data_set);
  35 void set_working_set_defaults(pe_working_set_t * data_set);
  36 void cleanup_calculations(pe_working_set_t * data_set);
  37 void pe_reset_working_set(pe_working_set_t *data_set);
  38 pe_resource_t *pe_find_resource(GList *rsc_list, const char *id_rh);
  39 pe_resource_t *pe_find_resource_with_flags(GList *rsc_list, const char *id, enum pe_find flags);
  40 pe_node_t *pe_find_node(GList *node_list, const char *uname);
  41 pe_node_t *pe_find_node_id(GList *node_list, const char *id);
  42 pe_node_t *pe_find_node_any(GList *node_list, const char *id, const char *uname);
  43 GList *find_operations(const char *rsc, const char *node, gboolean active_filter,
  44                          pe_working_set_t * data_set);
  45 int pe_bundle_replicas(const pe_resource_t *rsc);
  46 #if ENABLE_VERSIONED_ATTRS
  47 pe_rsc_action_details_t *pe_rsc_action_details(pe_action_t *action);
  48 #endif
  49 
  50 /*!
  51  * \brief Check whether a resource is any clone type
  52  *
  53  * \param[in] rsc  Resource to check
  54  *
  55  * \return TRUE if resource is clone, FALSE otherwise
  56  */
  57 static inline bool
  58 pe_rsc_is_clone(pe_resource_t *rsc)
     /* [previous][next][first][last][top][bottom][index][help] */
  59 {
  60     return rsc && (rsc->variant == pe_clone);
  61 }
  62 
  63 /*!
  64  * \brief Check whether a resource is a globally unique clone
  65  *
  66  * \param[in] rsc  Resource to check
  67  *
  68  * \return TRUE if resource is unique clone, FALSE otherwise
  69  */
  70 static inline bool
  71 pe_rsc_is_unique_clone(pe_resource_t *rsc)
     /* [previous][next][first][last][top][bottom][index][help] */
  72 {
  73     return pe_rsc_is_clone(rsc) && pcmk_is_set(rsc->flags, pe_rsc_unique);
  74 }
  75 
  76 /*!
  77  * \brief Check whether a resource is an anonymous clone
  78  *
  79  * \param[in] rsc  Resource to check
  80  *
  81  * \return TRUE if resource is anonymous clone, FALSE otherwise
  82  */
  83 static inline bool
  84 pe_rsc_is_anon_clone(pe_resource_t *rsc)
     /* [previous][next][first][last][top][bottom][index][help] */
  85 {
  86     return pe_rsc_is_clone(rsc) && !pcmk_is_set(rsc->flags, pe_rsc_unique);
  87 }
  88 
  89 /*!
  90  * \brief Check whether a resource is part of a bundle
  91  *
  92  * \param[in] rsc  Resource to check
  93  *
  94  * \return TRUE if resource is part of a bundle, FALSE otherwise
  95  */
  96 static inline bool
  97 pe_rsc_is_bundled(pe_resource_t *rsc)
     /* [previous][next][first][last][top][bottom][index][help] */
  98 {
  99     return uber_parent(rsc)->parent != NULL;
 100 }
 101 
 102 #ifdef __cplusplus
 103 }
 104 #endif
 105 
 106 #endif

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