pacemaker  2.1.8-3980678f03
Scalable High-Availability cluster resource manager
roles_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_ROLES_INTERNAL__H
11 #define PCMK__CRM_COMMON_ROLES_INTERNAL__H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 // String equivalents of enum rsc_role_e
18 #define PCMK__ROLE_UNKNOWN "Unknown"
19 #define PCMK__ROLE_UNPROMOTED_LEGACY "Slave"
20 #define PCMK__ROLE_PROMOTED_LEGACY "Master"
21 
29 #define pcmk__set_rsc_flags(resource, flags_to_set) do { \
30  (resource)->flags = pcmk__set_flags_as(__func__, __LINE__, \
31  LOG_TRACE, "Resource", (resource)->id, (resource)->flags, \
32  (flags_to_set), #flags_to_set); \
33  } while (0)
34 
42 #define pcmk__clear_rsc_flags(resource, flags_to_clear) do { \
43  (resource)->flags = pcmk__clear_flags_as(__func__, __LINE__, \
44  LOG_TRACE, "Resource", (resource)->id, (resource)->flags, \
45  (flags_to_clear), #flags_to_clear); \
46  } while (0)
47 
56 static inline pcmk_node_t *
57 pcmk__current_node(const pcmk_resource_t *rsc)
58 {
59  return (rsc == NULL)? NULL : rsc->fns->active_node(rsc, NULL, NULL);
60 }
61 
62 #ifdef __cplusplus
63 }
64 #endif
65 
66 #endif // PCMK__CRM_COMMON_ROLES_INTERNAL__H
pcmk_rsc_methods_t * fns
Definition: resources.h:412
pcmk_node_t *(* active_node)(const pcmk_resource_t *rsc, unsigned int *count_all, unsigned int *count_clean)
Definition: resources.h:373