pacemaker  3.0.0-d8340737c4
Scalable High-Availability cluster resource manager
crm.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_CRM__H
11 # define PCMK__CRM_CRM__H
12 
13 # include <crm_config.h>
14 # include <stdlib.h>
15 # include <glib.h>
16 # include <stdbool.h>
17 
18 # include <string.h>
19 
20 # include <libxml/tree.h>
21 
22 #include <crm/common/options.h>
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
34 #ifndef PCMK_ALLOW_DEPRECATED
35 
46 #define PCMK_ALLOW_DEPRECATED 1
47 #endif
48 
66 #define CRM_FEATURE_SET "3.20.0"
67 
68 /* Pacemaker's CPG protocols use fixed-width binary fields for the sender and
69  * recipient of a CPG message. This imposes an arbitrary limit on cluster node
70  * names.
71  */
73 #define MAX_NAME 256
74 
75 # define CRM_META "CRM_meta"
76 
77 // NOTE: sbd (as of at least 1.5.2) uses this
78 extern char *crm_system_name;
79 
80 /* Sub-systems */
81 # define CRM_SYSTEM_DC "dc"
82 #define CRM_SYSTEM_DCIB "dcib" // Primary instance of CIB manager
83 # define CRM_SYSTEM_CIB "cib"
84 # define CRM_SYSTEM_CRMD "crmd"
85 # define CRM_SYSTEM_LRMD "lrmd"
86 # define CRM_SYSTEM_PENGINE "pengine"
87 # define CRM_SYSTEM_TENGINE "tengine"
88 # define CRM_SYSTEM_MCP "pacemakerd"
89 
90 // Names of internally generated node attributes
91 // @TODO Replace these with PCMK_NODE_ATTR_*
92 # define CRM_ATTR_UNAME "#uname"
93 # define CRM_ATTR_ID "#id"
94 # define CRM_ATTR_KIND "#kind"
95 # define CRM_ATTR_ROLE "#role"
96 # define CRM_ATTR_IS_DC "#is_dc"
97 # define CRM_ATTR_CLUSTER_NAME "#cluster-name"
98 # define CRM_ATTR_SITE_NAME "#site-name"
99 # define CRM_ATTR_UNFENCED "#node-unfenced"
100 # define CRM_ATTR_DIGESTS_ALL "#digests-all"
101 # define CRM_ATTR_DIGESTS_SECURE "#digests-secure"
102 # define CRM_ATTR_PROTOCOL "#attrd-protocol"
103 # define CRM_ATTR_FEATURE_SET "#feature-set"
104 
105 /* Valid operations */
106 # define CRM_OP_NOOP "noop"
107 # define CRM_OP_JOIN_ANNOUNCE "join_announce"
108 # define CRM_OP_JOIN_OFFER "join_offer"
109 # define CRM_OP_JOIN_REQUEST "join_request"
110 # define CRM_OP_JOIN_ACKNAK "join_ack_nack"
111 # define CRM_OP_JOIN_CONFIRM "join_confirm"
112 # define CRM_OP_PING "ping"
113 # define CRM_OP_NODE_INFO "node-info"
114 # define CRM_OP_THROTTLE "throttle"
115 # define CRM_OP_VOTE "vote"
116 # define CRM_OP_NOVOTE "no-vote"
117 # define CRM_OP_HELLO "hello"
118 # define CRM_OP_PECALC "pe_calc"
119 # define CRM_OP_QUIT "quit"
120 # define CRM_OP_SHUTDOWN_REQ "req_shutdown"
121 # define CRM_OP_SHUTDOWN PCMK_ACTION_DO_SHUTDOWN
122 # define CRM_OP_REGISTER "register"
123 # define CRM_OP_IPC_FWD "ipc_fwd"
124 # define CRM_OP_INVOKE_LRM "lrm_invoke"
125 # define CRM_OP_LRM_DELETE PCMK_ACTION_LRM_DELETE
126 # define CRM_OP_LRM_FAIL "lrm_fail"
127 # define CRM_OP_PROBED "probe_complete"
128 # define CRM_OP_REPROBE "probe_again"
129 # define CRM_OP_CLEAR_FAILCOUNT PCMK_ACTION_CLEAR_FAILCOUNT
130 # define CRM_OP_REMOTE_STATE "remote_state"
131 # define CRM_OP_RM_NODE_CACHE "rm_node_cache"
132 # define CRM_OP_MAINTENANCE_NODES PCMK_ACTION_MAINTENANCE_NODES
133 
134 /* Possible cluster membership states */
135 # define CRMD_JOINSTATE_DOWN "down"
136 # define CRMD_JOINSTATE_PENDING "pending"
137 # define CRMD_JOINSTATE_MEMBER "member"
138 # define CRMD_JOINSTATE_NACK "banned"
139 
140 # include <crm/common/actions.h>
141 # include <crm/common/cib.h>
142 # include <crm/common/logging.h>
143 # include <crm/common/util.h>
144 
145 #ifdef __cplusplus
146 }
147 #endif
148 
149 #if !defined(PCMK_ALLOW_DEPRECATED) || (PCMK_ALLOW_DEPRECATED == 1)
150 #include <crm/crm_compat.h>
151 #endif
152 
153 #endif
Deprecated Pacemaker utilities.
APIs related to actions.
char * crm_system_name
Definition: utils.c:44
Wrappers for and extensions to libqb logging.
Utility functions.
API related to options.