pacemaker 2.1.8-2.1.8
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
status_compat.h
Go to the documentation of this file.
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_PENGINE_STATUS_COMPAT__H
11#define PCMK__CRM_PENGINE_STATUS_COMPAT__H
12
13#include <stdbool.h> // bool
14#include <crm/common/util.h> // pcmk_is_set()
15#include <crm/common/scheduler.h> // pcmk_resource_t, pcmk_rsc_unique, etc.
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
30// NOTE: sbd (as of at least 1.5.2) uses this
32pcmk_node_t *pe_find_node(const GList *node_list, const char *node_name);
33
35static inline bool
36pe_rsc_is_clone(const pcmk_resource_t *rsc)
37{
38 return (rsc != NULL) && (rsc->variant == pcmk_rsc_variant_clone);
39}
40
42static inline bool
43pe_rsc_is_unique_clone(const pcmk_resource_t *rsc)
44{
45 return pe_rsc_is_clone(rsc) && pcmk_is_set(rsc->flags, pcmk_rsc_unique);
46}
47
49static inline bool
50pe_rsc_is_anon_clone(const pcmk_resource_t *rsc)
51{
52 return pe_rsc_is_clone(rsc) && !pcmk_is_set(rsc->flags, pcmk_rsc_unique);
53}
54
56static inline bool
57pe_rsc_is_bundled(const pcmk_resource_t *rsc)
58{
59 if (rsc == NULL) {
60 return false;
61 }
62 while (rsc->parent != NULL) {
63 rsc = rsc->parent;
64 }
65 return rsc->variant == pcmk_rsc_variant_bundle;
66}
67
68#ifdef __cplusplus
69}
70#endif
71
72#endif // PCMK__CRM_PENGINE_STATUS_COMPAT__H
Utility functions.
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
Definition util.h:98
@ pcmk_rsc_variant_bundle
Definition resources.h:40
@ pcmk_rsc_variant_clone
Definition resources.h:39
@ pcmk_rsc_unique
Definition resources.h:100
Scheduler API.
pcmk_node_t * pe_find_node(const GList *node_list, const char *node_name)
Find a node by name in a list of nodes.
Definition status.c:517
enum pe_obj_types variant
Definition resources.h:410
unsigned long long flags
Definition resources.h:428
pcmk_resource_t * parent
Definition resources.h:409