pacemaker  2.0.4-2deceaa
Scalable High-Availability cluster resource manager
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
status.h
Go to the documentation of this file.
1 /*
2  * Copyright 2004-2019 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 PENGINE_STATUS__H
11 # define PENGINE_STATUS__H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
23 # include <glib.h> // gboolean
24 # include <stdbool.h> // bool
25 # include <crm/crm.h> // GListPtr
26 # include <crm/common/iso8601.h>
27 # include <crm/pengine/common.h>
28 # include <crm/pengine/pe_types.h> // pe_node_t, pe_resource_t, etc.
29 # include <crm/pengine/complex.h>
30 
31 const char *rsc_printable_id(pe_resource_t *rsc);
32 gboolean cluster_status(pe_working_set_t * data_set);
36 void cleanup_calculations(pe_working_set_t * data_set);
38 pe_resource_t *pe_find_resource(GListPtr rsc_list, const char *id_rh);
39 pe_resource_t *pe_find_resource_with_flags(GListPtr rsc_list, const char *id, enum pe_find flags);
40 pe_node_t *pe_find_node(GListPtr node_list, const char *uname);
41 pe_node_t *pe_find_node_id(GListPtr node_list, const char *id);
42 pe_node_t *pe_find_node_any(GListPtr node_list, const char *id, const char *uname);
43 GListPtr find_operations(const char *rsc, const char *node, gboolean active_filter,
44  pe_working_set_t * data_set);
45 int pe_bundle_replicas(const pe_resource_t *rsc);
46 #if ENABLE_VERSIONED_ATTRS
47 pe_rsc_action_details_t *pe_rsc_action_details(pe_action_t *action);
48 #endif
49 
57 static inline bool
58 pe_rsc_is_clone(pe_resource_t *rsc)
59 {
60  return rsc && (rsc->variant == pe_clone);
61 }
62 
70 static inline bool
71 pe_rsc_is_unique_clone(pe_resource_t *rsc)
72 {
73  return pe_rsc_is_clone(rsc) && is_set(rsc->flags, pe_rsc_unique);
74 }
75 
83 static inline bool
84 pe_rsc_is_anon_clone(pe_resource_t *rsc)
85 {
86  return pe_rsc_is_clone(rsc) && is_not_set(rsc->flags, pe_rsc_unique);
87 }
88 
96 static inline bool
97 pe_rsc_is_bundled(pe_resource_t *rsc)
98 {
99  return uber_parent(rsc)->parent != NULL;
100 }
101 
102 #ifdef __cplusplus
103 }
104 #endif
105 
106 #endif
char uname[MAX_NAME]
Definition: internal.h:85
A dumping ground.
pe_resource_t * pe_find_resource_with_flags(GListPtr rsc_list, const char *id, enum pe_find flags)
Definition: status.c:381
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
#define pe_rsc_unique
Definition: pe_types.h:241
pe_node_t * pe_find_node(GListPtr node_list, const char *uname)
Definition: status.c:427
pe_node_t * pe_find_node_id(GListPtr node_list, const char *id)
Definition: status.c:411
const char * action
Definition: pcmk_fence.c:29
GListPtr find_operations(const char *rsc, const char *node, gboolean active_filter, pe_working_set_t *data_set)
Definition: unpack.c:3805
void pe_reset_working_set(pe_working_set_t *data_set)
Reset a working set to default state without freeing it.
Definition: status.c:327
void cleanup_calculations(pe_working_set_t *data_set)
Reset working set to default state without freeing it or constraints.
Definition: status.c:268
pe_find
Determine behavior of pe_find_resource_with_flags()
Definition: pe_types.h:80
pe_resource_t * uber_parent(pe_resource_t *rsc)
Definition: complex.c:762
void set_working_set_defaults(pe_working_set_t *data_set)
Definition: status.c:357
unsigned long long flags
Definition: pe_types.h:332
ISO_8601 Date handling.
enum pe_obj_types variant
Definition: pe_types.h:314
pe_resource_t * pe_find_resource(GListPtr rsc_list, const char *id_rh)
Definition: status.c:375
const char * rsc_printable_id(pe_resource_t *rsc)
Definition: utils.c:2276
gboolean cluster_status(pe_working_set_t *data_set)
Definition: status.c:70
Data types for cluster status.
GList * GListPtr
Definition: crm.h:214
pe_node_t * pe_find_node_any(GListPtr node_list, const char *id, const char *uname)
Definition: status.c:399
uint64_t flags
Definition: remote.c:149
int pe_bundle_replicas(const pe_resource_t *rsc)
Get the number of configured replicas in a bundle.
Definition: bundle.c:1939
pe_resource_t * parent
Definition: pe_types.h:312