pacemaker 2.1.8-2.1.8
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
clone_internal.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_COMMON_CLONE_INTERNAL__H
11#define PCMK__CRM_COMMON_CLONE_INTERNAL__H
12
13#include <stdbool.h> // bool
14#include <crm/common/scheduler_types.h> // pcmk_resource_t
15#include <crm/common/resources.h> // pcmk_rsc_variant_clone
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21// Clone resource flags (used in variant data)
23 // Whether instances should be started sequentially
25
26 // Whether promotion scores have been added
28
29 // Whether promotion constraints have been added
31};
32
43static inline bool
44pcmk__is_clone(const pcmk_resource_t *rsc)
45{
46 return (rsc != NULL) && (rsc->variant == pcmk_rsc_variant_clone);
47}
48
57static inline bool
58pcmk__is_unique_clone(const pcmk_resource_t *rsc)
59{
60 return pcmk__is_clone(rsc) && pcmk_is_set(rsc->flags, pcmk_rsc_unique);
61}
62
71static inline bool
72pcmk__is_anonymous_clone(const pcmk_resource_t *rsc)
73{
74 return pcmk__is_clone(rsc) && !pcmk_is_set(rsc->flags, pcmk_rsc_unique);
75}
76
77#ifdef __cplusplus
78}
79#endif
80
81#endif // PCMK__CRM_COMMON_CLONE_INTERNAL__H
pcmk__clone_flags
@ pcmk__clone_promotion_added
@ pcmk__clone_promotion_constrained
@ pcmk__clone_ordered
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
Definition util.h:98
Scheduler API for resources.
@ pcmk_rsc_variant_clone
Definition resources.h:39
@ pcmk_rsc_unique
Definition resources.h:100
Type aliases needed to define scheduler objects.
enum pe_obj_types variant
Definition resources.h:410
unsigned long long flags
Definition resources.h:428