pacemaker 3.0.1-16e74fc4da
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 <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
21extern "C" {
22#endif
23
24// Clone resource flags (used in variant data)
26 // Whether instances should be started sequentially
28
29 // Whether promotion scores have been added
31
32 // Whether promotion constraints have been added
34};
35
46static inline bool
47pcmk__is_clone(const pcmk_resource_t *rsc)
48{
49 return (rsc != NULL) && (rsc->priv->variant == pcmk__rsc_variant_clone);
50}
51
60static inline bool
61pcmk__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
74static inline bool
75pcmk__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
pcmk__clone_flags
@ pcmk__clone_promotion_added
@ pcmk__clone_promotion_constrained
@ pcmk__clone_ordered
Utility functions.
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
Definition util.h:80
Scheduler API for resources.
@ pcmk__rsc_unique
@ pcmk__rsc_variant_clone
Clone resource.
Type aliases needed to define scheduler objects.
enum pcmk__rsc_variant variant
unsigned long long flags
Definition resources.h:69
pcmk__resource_private_t * priv
Definition resources.h:61