pacemaker
1.1.18-2b07d5c5a9
Scalable High-Availability cluster resource manager
include
crm
crm.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2 of the License, or (at your option) any later version.
8
*
9
* This software is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with this library; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
#ifndef CRM__H
19
# define CRM__H
20
27
# include <
crm_config.h
>
28
# include <stdlib.h>
29
# include <glib.h>
30
# include <stdbool.h>
31
32
# include <string.h>
33
34
# include <libxml/tree.h>
35
36
# define CRM_FEATURE_SET "3.0.14"
37
38
# define EOS '\0'
39
# define DIMOF(a) ((int) (sizeof(a)/sizeof(a[0])) )
40
41
# ifndef MAX_NAME
42
# define MAX_NAME 256
43
# endif
44
45
# ifndef __GNUC__
46
# define __builtin_expect(expr, result) (expr)
47
# endif
48
49
/* Some handy macros used by the Linux kernel */
50
# define __likely(expr) __builtin_expect(expr, 1)
51
# define __unlikely(expr) __builtin_expect(expr, 0)
52
53
# define CRM_META "CRM_meta"
54
55
extern
char
*
crm_system_name
;
56
57
/* *INDENT-OFF* */
58
59
/* Clean these up at some point, some probably should be runtime options */
60
# define SOCKET_LEN 1024
61
# define APPNAME_LEN 256
62
# define MAX_IPC_FAIL 5
63
# define MAX_IPC_DELAY 120
64
65
# define DAEMON_RESPAWN_STOP 100
66
67
# define MSG_LOG 1
68
# define DOT_FSA_ACTIONS 1
69
# define DOT_ALL_FSA_INPUTS 1
70
/* #define FSA_TRACE 1 */
71
72
/* This header defines INFINITY, but it might be defined elsewhere as well
73
* (e.g. math.h), so undefine it first. This, of course, complicates any attempt
74
* to use the other definition in any code that includes this header.
75
*
76
* @TODO: Rename our constant (which will break API backward compatibility).
77
*/
78
# undef INFINITY
79
80
# define INFINITY_S "INFINITY"
81
# define MINUS_INFINITY_S "-INFINITY"
82
83
# define INFINITY 1000000
84
85
/* Sub-systems */
86
# define CRM_SYSTEM_DC "dc"
87
# define CRM_SYSTEM_DCIB "dcib"
88
/* The master CIB */
89
# define CRM_SYSTEM_CIB "cib"
90
# define CRM_SYSTEM_CRMD "crmd"
91
# define CRM_SYSTEM_LRMD "lrmd"
92
# define CRM_SYSTEM_PENGINE "pengine"
93
# define CRM_SYSTEM_TENGINE "tengine"
94
# define CRM_SYSTEM_STONITHD "stonithd"
95
# define CRM_SYSTEM_MCP "pacemakerd"
96
97
// Names of internally generated node attributes
98
# define CRM_ATTR_UNAME "#uname"
99
# define CRM_ATTR_ID "#id"
100
# define CRM_ATTR_KIND "#kind"
101
# define CRM_ATTR_ROLE "#role"
102
# define CRM_ATTR_IS_DC "#is_dc"
103
# define CRM_ATTR_CLUSTER_NAME "#cluster-name"
104
# define CRM_ATTR_SITE_NAME "#site-name"
105
# define CRM_ATTR_UNFENCED "#node-unfenced"
106
# define CRM_ATTR_DIGESTS_ALL "#digests-all"
107
# define CRM_ATTR_DIGESTS_SECURE "#digests-secure"
108
# define CRM_ATTR_RA_VERSION "#ra-version"
109
# define CRM_ATTR_PROTOCOL "#attrd-protocol"
110
111
/* Valid operations */
112
# define CRM_OP_NOOP "noop"
113
# define CRM_OP_JOIN_ANNOUNCE "join_announce"
114
# define CRM_OP_JOIN_OFFER "join_offer"
115
# define CRM_OP_JOIN_REQUEST "join_request"
116
# define CRM_OP_JOIN_ACKNAK "join_ack_nack"
117
# define CRM_OP_JOIN_CONFIRM "join_confirm"
118
# define CRM_OP_PING "ping"
119
# define CRM_OP_THROTTLE "throttle"
120
# define CRM_OP_VOTE "vote"
121
# define CRM_OP_NOVOTE "no-vote"
122
# define CRM_OP_HELLO "hello"
123
# define CRM_OP_PECALC "pe_calc"
124
# define CRM_OP_QUIT "quit"
125
# define CRM_OP_LOCAL_SHUTDOWN "start_shutdown"
126
# define CRM_OP_SHUTDOWN_REQ "req_shutdown"
127
# define CRM_OP_SHUTDOWN "do_shutdown"
128
# define CRM_OP_FENCE "stonith"
129
# define CRM_OP_REGISTER "register"
130
# define CRM_OP_IPC_FWD "ipc_fwd"
131
# define CRM_OP_INVOKE_LRM "lrm_invoke"
132
# define CRM_OP_LRM_REFRESH "lrm_refresh"
/* Deprecated */
133
# define CRM_OP_LRM_QUERY "lrm_query"
134
# define CRM_OP_LRM_DELETE "lrm_delete"
135
# define CRM_OP_LRM_FAIL "lrm_fail"
136
# define CRM_OP_PROBED "probe_complete"
137
# define CRM_OP_REPROBE "probe_again"
138
# define CRM_OP_CLEAR_FAILCOUNT "clear_failcount"
139
# define CRM_OP_REMOTE_STATE "remote_state"
140
# define CRM_OP_RELAXED_SET "one-or-more"
141
# define CRM_OP_RELAXED_CLONE "clone-one-or-more"
142
# define CRM_OP_RM_NODE_CACHE "rm_node_cache"
143
# define CRM_OP_MAINTENANCE_NODES "maintenance_nodes"
144
145
/* @COMPAT: These symbols are deprecated and not used by Pacemaker,
146
* but they are kept for public API backward compatibility.
147
*/
148
# define CRM_OP_DIE "die_no_respawn"
149
# define CRM_OP_RETRIVE_CIB "retrieve_cib"
150
# define CRM_OP_HBEAT "dc_beat"
151
# define CRM_OP_ABORT "abort"
152
# define CRM_OP_EVENTCC "event_cc"
153
# define CRM_OP_TEABORT "te_abort"
154
# define CRM_OP_TEABORTED "te_abort_confirmed"
155
# define CRM_OP_TE_HALT "te_halt"
156
# define CRM_OP_TECOMPLETE "te_complete"
157
# define CRM_OP_TETIMEOUT "te_timeout"
158
# define CRM_OP_TRANSITION "transition"
159
# define CRM_OP_DEBUG_UP "debug_inc"
/* unused since 1.1.8 */
160
# define CRM_OP_DEBUG_DOWN "debug_dec"
/* unused since 1.1.8 */
161
# define CRM_OP_NODES_PROBED "probe_nodes_complete"
162
163
/* Possible cluster membership states */
164
# define CRMD_JOINSTATE_DOWN "down"
165
# define CRMD_JOINSTATE_PENDING "pending"
166
# define CRMD_JOINSTATE_MEMBER "member"
167
# define CRMD_JOINSTATE_NACK "banned"
168
169
# define CRMD_ACTION_DELETE "delete"
170
# define CRMD_ACTION_CANCEL "cancel"
171
172
# define CRMD_ACTION_RELOAD "reload"
173
# define CRMD_ACTION_MIGRATE "migrate_to"
174
# define CRMD_ACTION_MIGRATED "migrate_from"
175
176
# define CRMD_ACTION_START "start"
177
# define CRMD_ACTION_STARTED "running"
178
179
# define CRMD_ACTION_STOP "stop"
180
# define CRMD_ACTION_STOPPED "stopped"
181
182
# define CRMD_ACTION_PROMOTE "promote"
183
# define CRMD_ACTION_PROMOTED "promoted"
184
# define CRMD_ACTION_DEMOTE "demote"
185
# define CRMD_ACTION_DEMOTED "demoted"
186
187
# define CRMD_ACTION_NOTIFY "notify"
188
# define CRMD_ACTION_NOTIFIED "notified"
189
190
# define CRMD_ACTION_STATUS "monitor"
191
# define CRMD_ACTION_METADATA "meta-data"
192
# define CRMD_METADATA_CALL_TIMEOUT 30000
193
194
/* short names */
195
# define RSC_DELETE CRMD_ACTION_DELETE
196
# define RSC_CANCEL CRMD_ACTION_CANCEL
197
198
# define RSC_MIGRATE CRMD_ACTION_MIGRATE
199
# define RSC_MIGRATED CRMD_ACTION_MIGRATED
200
201
# define RSC_START CRMD_ACTION_START
202
# define RSC_STARTED CRMD_ACTION_STARTED
203
204
# define RSC_STOP CRMD_ACTION_STOP
205
# define RSC_STOPPED CRMD_ACTION_STOPPED
206
207
# define RSC_PROMOTE CRMD_ACTION_PROMOTE
208
# define RSC_PROMOTED CRMD_ACTION_PROMOTED
209
# define RSC_DEMOTE CRMD_ACTION_DEMOTE
210
# define RSC_DEMOTED CRMD_ACTION_DEMOTED
211
212
# define RSC_NOTIFY CRMD_ACTION_NOTIFY
213
# define RSC_NOTIFIED CRMD_ACTION_NOTIFIED
214
215
# define RSC_STATUS CRMD_ACTION_STATUS
216
# define RSC_METADATA CRMD_ACTION_METADATA
217
/* *INDENT-ON* */
218
219
typedef
GList *
GListPtr
;
220
221
# include <
crm/common/logging.h
>
222
# include <
crm/common/util.h
>
223
# include <
crm/error.h
>
224
225
static
inline
const
char
*crm_action_str(
const
char
*task,
int
interval) {
226
if
(
safe_str_eq
(task,
RSC_STATUS
) && !interval) {
227
return
"probe"
;
228
}
229
return
task;
230
}
231
232
#endif
crm_config.h
crm_system_name
char * crm_system_name
Definition:
utils.c:70
logging.h
Wrappers for and extensions to libqb logging.
error.h
Error codes and asserts.
util.h
Utility functions.
RSC_STATUS
#define RSC_STATUS
Definition:
crm.h:215
safe_str_eq
#define safe_str_eq(a, b)
Definition:
util.h:72
GListPtr
GList * GListPtr
Definition:
crm.h:219
Generated on Tue May 8 2018 12:13:24 for pacemaker by
1.8.13