diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h index 748979c72c..e6c371073e 100644 --- a/include/crm/pengine/status.h +++ b/include/crm/pengine/status.h @@ -1,78 +1,59 @@ /* * Copyright 2004-2024 the Pacemaker project contributors * * The version control history for this file may have further details. * * This source code is licensed under the GNU Lesser General Public License * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #ifndef PCMK__CRM_PENGINE_STATUS__H # define PCMK__CRM_PENGINE_STATUS__H # include // gboolean # include // bool # include // pcmk_is_set() # include # include # include // pcmk_node_t, pcmk_resource_t, etc. # include #ifdef __cplusplus extern "C" { #endif /*! * \file * \brief Cluster status and scheduling * \ingroup pengine */ const char *rsc_printable_id(const pcmk_resource_t *rsc); gboolean cluster_status(pcmk_scheduler_t *scheduler); pcmk_scheduler_t *pe_new_working_set(void); void pe_free_working_set(pcmk_scheduler_t *scheduler); void set_working_set_defaults(pcmk_scheduler_t *scheduler); void cleanup_calculations(pcmk_scheduler_t *scheduler); void pe_reset_working_set(pcmk_scheduler_t *scheduler); pcmk_resource_t *pe_find_resource(GList *rsc_list, const char *id_rh); pcmk_resource_t *pe_find_resource_with_flags(GList *rsc_list, const char *id, enum pe_find flags); pcmk_node_t *pe_find_node(const GList *node_list, const char *node_name); pcmk_node_t *pe_find_node_id(const GList *node_list, const char *id); pcmk_node_t *pe_find_node_any(const GList *node_list, const char *id, const char *node_name); GList *find_operations(const char *rsc, const char *node, gboolean active_filter, pcmk_scheduler_t *scheduler); void calculate_active_ops(const GList *sorted_op_list, int *start_index, int *stop_index); int pe_bundle_replicas(const pcmk_resource_t *rsc); -/*! - * \brief Check whether a resource is part of a bundle - * - * \param[in] rsc Resource to check - * - * \return true if resource is part of a bundle, false otherwise - */ -static inline bool -pe_rsc_is_bundled(const pcmk_resource_t *rsc) -{ - if (rsc == NULL) { - return false; - } - while (rsc->parent != NULL) { - rsc = rsc->parent; - } - return rsc->variant == pcmk_rsc_variant_bundle; -} - #if !defined(PCMK_ALLOW_DEPRECATED) || (PCMK_ALLOW_DEPRECATED == 1) #include #endif #ifdef __cplusplus } #endif #endif diff --git a/include/crm/pengine/status_compat.h b/include/crm/pengine/status_compat.h index 7c0871c56d..d87386e23f 100644 --- a/include/crm/pengine/status_compat.h +++ b/include/crm/pengine/status_compat.h @@ -1,55 +1,68 @@ /* * Copyright 2004-2024 the Pacemaker project contributors * * The version control history for this file may have further details. * * This source code is licensed under the GNU Lesser General Public License * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. */ #ifndef PCMK__CRM_PENGINE_STATUS_COMPAT__H #define PCMK__CRM_PENGINE_STATUS_COMPAT__H #include // bool #include // pcmk_is_set() #include // pcmk_resource_t, pcmk_rsc_unique, etc. #ifdef __cplusplus extern "C" { #endif /** * \file * \brief Deprecated Pacemaker scheduler utilities * \ingroup pengine * \deprecated Do not include this header directly. The utilities in this * header, and the header itself, will be removed in a future * release. */ //! \deprecated Compare variant directly instead static inline bool pe_rsc_is_clone(const pcmk_resource_t *rsc) { return (rsc != NULL) && (rsc->variant == pcmk_rsc_variant_clone); } //! \deprecated Compare variant and flags directly static inline bool pe_rsc_is_unique_clone(const pcmk_resource_t *rsc) { return pe_rsc_is_clone(rsc) && pcmk_is_set(rsc->flags, pcmk_rsc_unique); } //! \deprecated Compare variant and flags directly static inline bool pe_rsc_is_anon_clone(const pcmk_resource_t *rsc) { return pe_rsc_is_clone(rsc) && !pcmk_is_set(rsc->flags, pcmk_rsc_unique); } +//! \deprecated Compare ancestor variants directly +static inline bool +pe_rsc_is_bundled(const pcmk_resource_t *rsc) +{ + if (rsc == NULL) { + return false; + } + while (rsc->parent != NULL) { + rsc = rsc->parent; + } + return rsc->variant == pcmk_rsc_variant_bundle; +} + #ifdef __cplusplus } #endif #endif // PCMK__CRM_PENGINE_STATUS_COMPAT__H