pacemaker
3.0.0-d8340737c4
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 <stdio.h>
// NULL
14
#include <stdbool.h>
// bool
15
#include <
crm/common/scheduler_types.h
>
// pcmk_resource_t
16
#include <
crm/common/resources.h
>
// pcmk_rsc_unique,
17
#include <
crm/common/resources_internal.h
>
// pcmk__rsc_variant_clone etc.
18
#include <
crm/common/util.h
>
// pcmk_is_set
19
20
#ifdef __cplusplus
21
extern
"C"
{
22
#endif
23
24
// Clone resource flags (used in variant data)
25
enum
pcmk__clone_flags
{
26
// Whether instances should be started sequentially
27
pcmk__clone_ordered
= (1 << 0),
28
29
// Whether promotion scores have been added
30
pcmk__clone_promotion_added
= (1 << 1),
31
32
// Whether promotion constraints have been added
33
pcmk__clone_promotion_constrained
= (1 << 2),
34
};
35
46
static
inline
bool
47
pcmk__is_clone(
const
pcmk_resource_t
*rsc)
48
{
49
return
(rsc != NULL) && (rsc->
priv
->
variant
==
pcmk__rsc_variant_clone
);
50
}
51
60
static
inline
bool
61
pcmk__is_unique_clone(
const
pcmk_resource_t
*rsc)
62
{
63
return
pcmk__is_clone(rsc) &&
pcmk_is_set
(rsc->
flags
,
pcmk__rsc_unique
);
64
}
65
74
static
inline
bool
75
pcmk__is_anonymous_clone(
const
pcmk_resource_t
*rsc)
76
{
77
return
pcmk__is_clone(rsc) && !
pcmk_is_set
(rsc->
flags
,
pcmk__rsc_unique
);
78
}
79
80
#ifdef __cplusplus
81
}
82
#endif
83
84
#endif // PCMK__CRM_COMMON_CLONE_INTERNAL__H
resources.h
Scheduler API for resources.
scheduler_types.h
Type aliases needed to define scheduler objects.
resources_internal.h
pcmk__clone_flags
pcmk__clone_flags
Definition:
clone_internal.h:25
pcmk__rsc_unique
Definition:
resources_internal.h:93
util.h
Utility functions.
pcmk__resource_private::variant
enum pcmk__rsc_variant variant
Definition:
resources_internal.h:321
pcmk_is_set
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
Definition:
util.h:80
pcmk__resource::priv
pcmk__resource_private_t * priv
Definition:
resources.h:61
pcmk__clone_promotion_added
Definition:
clone_internal.h:30
pcmk__resource
Definition:
resources.h:56
pcmk__clone_promotion_constrained
Definition:
clone_internal.h:33
pcmk__resource::flags
unsigned long long flags
Definition:
resources.h:69
pcmk__rsc_variant_clone
Clone resource.
Definition:
resources_internal.h:57
pcmk__clone_ordered
Definition:
clone_internal.h:27
Generated on Wed Jan 8 2025 16:55:39 for pacemaker by
1.8.14