pacemaker
2.1.8-3980678f03
Scalable High-Availability cluster resource manager
include
crm
common
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
18
extern
"C"
{
19
#endif
20
21
// Clone resource flags (used in variant data)
22
enum
pcmk__clone_flags
{
23
// Whether instances should be started sequentially
24
pcmk__clone_ordered
= (1 << 0),
25
26
// Whether promotion scores have been added
27
pcmk__clone_promotion_added
= (1 << 1),
28
29
// Whether promotion constraints have been added
30
pcmk__clone_promotion_constrained
= (1 << 2),
31
};
32
43
static
inline
bool
44
pcmk__is_clone(
const
pcmk_resource_t
*rsc)
45
{
46
return
(rsc != NULL) && (rsc->
variant
==
pcmk_rsc_variant_clone
);
47
}
48
57
static
inline
bool
58
pcmk__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
71
static
inline
bool
72
pcmk__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
resources.h
Scheduler API for resources.
scheduler_types.h
Type aliases needed to define scheduler objects.
pcmk__clone_flags
pcmk__clone_flags
Definition:
clone_internal.h:22
pe_resource_s
Definition:
resources.h:392
pcmk_is_set
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
Definition:
util.h:98
pe_resource_s::flags
unsigned long long flags
Definition:
resources.h:428
pe_resource_s::variant
enum pe_obj_types variant
Definition:
resources.h:410
pcmk__clone_promotion_added
Definition:
clone_internal.h:27
pcmk__clone_promotion_constrained
Definition:
clone_internal.h:30
pcmk_rsc_variant_clone
Definition:
resources.h:39
pcmk__clone_ordered
Definition:
clone_internal.h:24
pcmk_rsc_unique
Definition:
resources.h:100
Generated on Thu Aug 8 2024 18:08:10 for pacemaker by
1.8.14