pacemaker 2.1.6-6fdc9deea29
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
status.h
Go to the documentation of this file.
1/*
2 * Copyright 2004-2023 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__H
11# define PCMK__CRM_PENGINE_STATUS__H
12
13# include <glib.h> // gboolean
14# include <stdbool.h> // bool
15# include <crm/common/util.h> // pcmk_is_set()
16# include <crm/common/iso8601.h>
17# include <crm/pengine/common.h>
18# include <crm/pengine/pe_types.h> // pe_node_t, pe_resource_t, etc.
19# include <crm/pengine/complex.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
31const char *rsc_printable_id(const pe_resource_t *rsc);
38pe_resource_t *pe_find_resource(GList *rsc_list, const char *id_rh);
39pe_resource_t *pe_find_resource_with_flags(GList *rsc_list, const char *id, enum pe_find flags);
40pe_node_t *pe_find_node(const GList *node_list, const char *node_name);
41pe_node_t *pe_find_node_id(const GList *node_list, const char *id);
42pe_node_t *pe_find_node_any(const GList *node_list, const char *id,
43 const char *node_name);
44GList *find_operations(const char *rsc, const char *node, gboolean active_filter,
46void calculate_active_ops(const GList *sorted_op_list, int *start_index,
47 int *stop_index);
48int pe_bundle_replicas(const pe_resource_t *rsc);
49
57static inline bool
58pe_rsc_is_clone(const pe_resource_t *rsc)
59{
60 return rsc && (rsc->variant == pe_clone);
61}
62
70static inline bool
71pe_rsc_is_unique_clone(const pe_resource_t *rsc)
72{
73 return pe_rsc_is_clone(rsc) && pcmk_is_set(rsc->flags, pe_rsc_unique);
74}
75
83static inline bool
84pe_rsc_is_anon_clone(const pe_resource_t *rsc)
85{
86 return pe_rsc_is_clone(rsc) && !pcmk_is_set(rsc->flags, pe_rsc_unique);
87}
88
96static inline bool
97pe_rsc_is_bundled(const pe_resource_t *rsc)
98{
99 if (rsc == NULL) {
100 return false;
101 }
102 while (rsc->parent != NULL) {
103 rsc = rsc->parent;
104 }
105 return rsc->variant == pe_container;
106}
107
108#ifdef __cplusplus
109}
110#endif
111
112#endif
uint64_t flags
Definition remote.c:3
Utility functions.
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag.
Definition util.h:121
ISO_8601 Date handling.
pe_working_set_t * data_set
Data types for cluster status.
#define pe_rsc_unique
Definition pe_types.h:278
pe_find
Determine behavior of pe_find_resource_with_flags()
Definition pe_types.h:100
@ pe_container
Definition pe_types.h:41
@ pe_clone
Definition pe_types.h:40
pe_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:473
void calculate_active_ops(const GList *sorted_op_list, int *start_index, int *stop_index)
Definition unpack.c:2311
const char * rsc_printable_id(const pe_resource_t *rsc)
Definition utils.c:583
int pe_bundle_replicas(const pe_resource_t *rsc)
Get the number of configured replicas in a bundle.
Definition bundle.c:1835
pe_resource_t * pe_find_resource_with_flags(GList *rsc_list, const char *id, enum pe_find flags)
Definition status.c:397
GList * find_operations(const char *rsc, const char *node, gboolean active_filter, pe_working_set_t *data_set)
Definition unpack.c:4762
void cleanup_calculations(pe_working_set_t *data_set)
Reset working set to default state without freeing it or constraints.
Definition status.c:279
gboolean cluster_status(pe_working_set_t *data_set)
Definition status.c:71
pe_node_t * pe_find_node_any(const GList *node_list, const char *id, const char *node_name)
Find a node by name or ID in a list of nodes.
Definition status.c:426
pe_node_t * pe_find_node_id(const GList *node_list, const char *id)
Find a node by ID in a list of nodes.
Definition status.c:448
void pe_free_working_set(pe_working_set_t *data_set)
Free a working set.
Definition status.c:50
pe_working_set_t * pe_new_working_set(void)
Create a new working set.
Definition status.c:34
void set_working_set_defaults(pe_working_set_t *data_set)
Definition status.c:368
pe_resource_t * pe_find_resource(GList *rsc_list, const char *id_rh)
Definition status.c:391
void pe_reset_working_set(pe_working_set_t *data_set)
Reset a working set to default state without freeing it.
Definition status.c:338
enum pe_obj_types variant
Definition pe_types.h:356
unsigned long long flags
Definition pe_types.h:373
pe_resource_t * parent
Definition pe_types.h:354