pacemaker  2.1.7-0f7f88312f
Scalable High-Availability cluster resource manager
msg_xml.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_MSG_XML__H
11 # define PCMK__CRM_MSG_XML__H
12 
13 # include <crm/common/xml.h>
14 
15 #if !defined(PCMK_ALLOW_DEPRECATED) || (PCMK_ALLOW_DEPRECATED == 1)
16 #include <crm/msg_xml_compat.h>
17 #endif
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 /* This file defines constants for various XML syntax (mainly element and
24  * attribute names).
25  *
26  * For consistency, new constants should start with "PCMK_", followed by "XE"
27  * for XML element names, "XA" for XML attribute names, and "META" for meta
28  * attribute names. Old names that don't follow this policy should eventually be
29  * deprecated and replaced with names that do.
30  */
31 
32 /*
33  * XML elements
34  */
35 
36 #define PCMK_XE_DATE_EXPRESSION "date_expression"
37 #define PCMK_XE_OP_EXPRESSION "op_expression"
38 
39 /* This has been deprecated as a CIB element (an alias for <clone> with
40  * "promotable" set to "true") since 2.0.0.
41  */
42 #define PCMK_XE_PROMOTABLE_LEGACY "master"
43 
44 #define PCMK_XE_RSC_EXPRESSION "rsc_expression"
45 
46 
47 /*
48  * XML attributes
49  */
50 
51 #define PCMK_XA_FORMAT "format"
52 
53 /* These have been deprecated as CIB <clone> element attributes (aliases for
54  * "promoted-max" and "promoted-node-max") since 2.0.0.
55  */
56 #define PCMK_XA_PROMOTED_MAX_LEGACY "master-max"
57 #define PCMK_XA_PROMOTED_NODE_MAX_LEGACY "master-node-max"
58 
59 
60 /*
61  * Meta attributes
62  */
63 
64 #define PCMK_META_CLONE_MAX "clone-max"
65 #define PCMK_META_CLONE_MIN "clone-min"
66 #define PCMK_META_CLONE_NODE_MAX "clone-node-max"
67 #define PCMK_META_ENABLED "enabled"
68 #define PCMK_META_FAILURE_TIMEOUT "failure-timeout"
69 #define PCMK_META_MIGRATION_THRESHOLD "migration-threshold"
70 #define PCMK_META_PROMOTED_MAX "promoted-max"
71 #define PCMK_META_PROMOTED_NODE_MAX "promoted-node-max"
72 
73 
74 /*
75  * Older constants that don't follow current naming
76  */
77 
78 # ifndef F_ORIG
79 # define F_ORIG "src"
80 # endif
81 
82 # ifndef F_SEQ
83 # define F_SEQ "seq"
84 # endif
85 
86 # ifndef F_SUBTYPE
87 # define F_SUBTYPE "subt"
88 # endif
89 
90 # ifndef F_TYPE
91 # define F_TYPE "t"
92 # endif
93 
94 # ifndef F_CLIENTNAME
95 # define F_CLIENTNAME "cn"
96 # endif
97 
98 # ifndef F_XML_TAGNAME
99 # define F_XML_TAGNAME "__name__"
100 # endif
101 
102 # ifndef T_CRM
103 # define T_CRM "crmd"
104 # endif
105 
106 # ifndef T_ATTRD
107 # define T_ATTRD "attrd"
108 # endif
109 
110 # define CIB_OPTIONS_FIRST "cib-bootstrap-options"
111 
112 # define F_CRM_DATA "crm_xml"
113 # define F_CRM_TASK "crm_task"
114 # define F_CRM_HOST_TO "crm_host_to"
115 # define F_CRM_MSG_TYPE F_SUBTYPE
116 # define F_CRM_SYS_TO "crm_sys_to"
117 # define F_CRM_SYS_FROM "crm_sys_from"
118 # define F_CRM_HOST_FROM F_ORIG
119 # define F_CRM_REFERENCE XML_ATTR_REFERENCE
120 # define F_CRM_VERSION XML_ATTR_VERSION
121 # define F_CRM_ORIGIN "origin"
122 # define F_CRM_USER "crm_user"
123 # define F_CRM_JOIN_ID "join_id"
124 # define F_CRM_DC_LEAVING "dc-leaving"
125 # define F_CRM_ELECTION_ID "election-id"
126 # define F_CRM_ELECTION_AGE_S "election-age-sec"
127 # define F_CRM_ELECTION_AGE_US "election-age-nano-sec"
128 # define F_CRM_ELECTION_OWNER "election-owner"
129 # define F_CRM_TGRAPH "crm-tgraph-file"
130 # define F_CRM_TGRAPH_INPUT "crm-tgraph-in"
131 
132 # define F_CRM_THROTTLE_MODE "crm-limit-mode"
133 # define F_CRM_THROTTLE_MAX "crm-limit-max"
134 
135 /*---- Common tags/attrs */
136 # define XML_DIFF_MARKER "__crm_diff_marker__"
137 # define XML_TAG_CIB "cib"
138 # define XML_TAG_FAILED "failed"
139 
140 # define XML_ATTR_CRM_VERSION "crm_feature_set"
141 # define XML_ATTR_DIGEST "digest"
142 # define XML_ATTR_VALIDATION "validate-with"
143 
144 # define XML_ATTR_QUORUM_PANIC "no-quorum-panic"
145 # define XML_ATTR_HAVE_QUORUM "have-quorum"
146 # define XML_ATTR_HAVE_WATCHDOG "have-watchdog"
147 # define XML_ATTR_GENERATION "epoch"
148 # define XML_ATTR_GENERATION_ADMIN "admin_epoch"
149 # define XML_ATTR_NUMUPDATES "num_updates"
150 # define XML_ATTR_TIMEOUT "timeout"
151 # define XML_ATTR_ORIGIN "crm-debug-origin"
152 # define XML_ATTR_TSTAMP "crm-timestamp"
153 # define XML_CIB_ATTR_WRITTEN "cib-last-written"
154 # define XML_ATTR_VERSION "version"
155 # define XML_ATTR_DESC "description"
156 # define XML_ATTR_ID "id"
157 # define XML_ATTR_NAME "name"
158 # define XML_ATTR_IDREF "id-ref"
159 # define XML_ATTR_ID_LONG "long-id"
160 # define XML_ATTR_TYPE "type"
161 # define XML_ATTR_OP "op"
162 # define XML_ATTR_DC_UUID "dc-uuid"
163 # define XML_ATTR_UPDATE_ORIG "update-origin"
164 # define XML_ATTR_UPDATE_CLIENT "update-client"
165 # define XML_ATTR_UPDATE_USER "update-user"
166 
167 # define XML_BOOLEAN_TRUE "true"
168 # define XML_BOOLEAN_FALSE "false"
169 # define XML_BOOLEAN_YES XML_BOOLEAN_TRUE
170 # define XML_BOOLEAN_NO XML_BOOLEAN_FALSE
171 
172 # define XML_TAG_OPTIONS "options"
173 
174 /*---- top level tags/attrs */
175 # define XML_ATTR_REQUEST "request"
176 # define XML_ATTR_RESPONSE "response"
177 
178 # define XML_ATTR_UNAME "uname"
179 # define XML_ATTR_REFERENCE "reference"
180 
181 # define XML_CRM_TAG_PING "ping_response"
182 # define XML_PING_ATTR_STATUS "result"
183 # define XML_PING_ATTR_SYSFROM "crm_subsystem"
184 # define XML_PING_ATTR_CRMDSTATE "crmd_state"
185 # define XML_PING_ATTR_PACEMAKERDSTATE "pacemakerd_state"
186 # define XML_PING_ATTR_PACEMAKERDSTATE_INIT "init"
187 # define XML_PING_ATTR_PACEMAKERDSTATE_STARTINGDAEMONS "starting_daemons"
188 # define XML_PING_ATTR_PACEMAKERDSTATE_WAITPING "wait_for_ping"
189 # define XML_PING_ATTR_PACEMAKERDSTATE_RUNNING "running"
190 # define XML_PING_ATTR_PACEMAKERDSTATE_SHUTTINGDOWN "shutting_down"
191 # define XML_PING_ATTR_PACEMAKERDSTATE_SHUTDOWNCOMPLETE "shutdown_complete"
192 # define XML_PING_ATTR_PACEMAKERDSTATE_REMOTE "remote"
193 
194 # define XML_FAIL_TAG_CIB "failed_update"
195 
196 # define XML_FAILCIB_ATTR_ID "id"
197 # define XML_FAILCIB_ATTR_OBJTYPE "object_type"
198 # define XML_FAILCIB_ATTR_OP "operation"
199 # define XML_FAILCIB_ATTR_REASON "reason"
200 
201 /*---- CIB specific tags/attrs */
202 # define XML_CIB_TAG_SECTION_ALL "all"
203 # define XML_CIB_TAG_CONFIGURATION "configuration"
204 # define XML_CIB_TAG_STATUS "status"
205 # define XML_CIB_TAG_RESOURCES "resources"
206 # define XML_CIB_TAG_NODES "nodes"
207 # define XML_CIB_TAG_CONSTRAINTS "constraints"
208 # define XML_CIB_TAG_CRMCONFIG "crm_config"
209 # define XML_CIB_TAG_OPCONFIG "op_defaults"
210 # define XML_CIB_TAG_RSCCONFIG "rsc_defaults"
211 # define XML_CIB_TAG_ACLS "acls"
212 # define XML_CIB_TAG_ALERTS "alerts"
213 # define XML_CIB_TAG_ALERT "alert"
214 # define XML_CIB_TAG_ALERT_RECIPIENT "recipient"
215 # define XML_CIB_TAG_ALERT_SELECT "select"
216 # define XML_CIB_TAG_ALERT_ATTRIBUTES "select_attributes"
217 # define XML_CIB_TAG_ALERT_FENCING "select_fencing"
218 # define XML_CIB_TAG_ALERT_NODES "select_nodes"
219 # define XML_CIB_TAG_ALERT_RESOURCES "select_resources"
220 # define XML_CIB_TAG_ALERT_ATTR "attribute"
221 
222 # define XML_CIB_TAG_STATE "node_state"
223 # define XML_CIB_TAG_NODE "node"
224 # define XML_CIB_TAG_NVPAIR "nvpair"
225 
226 # define XML_CIB_TAG_PROPSET "cluster_property_set"
227 # define XML_TAG_ATTR_SETS "instance_attributes"
228 # define XML_TAG_META_SETS "meta_attributes"
229 # define XML_TAG_ATTRS "attributes"
230 # define XML_TAG_PARAMS "parameters"
231 # define XML_TAG_PARAM "param"
232 # define XML_TAG_UTILIZATION "utilization"
233 
234 # define XML_TAG_RESOURCE_REF "resource_ref"
235 # define XML_CIB_TAG_RESOURCE "primitive"
236 # define XML_CIB_TAG_GROUP "group"
237 # define XML_CIB_TAG_INCARNATION "clone"
238 # define XML_CIB_TAG_CONTAINER "bundle"
239 
240 # define XML_CIB_TAG_RSC_TEMPLATE "template"
241 
242 # define XML_RSC_ATTR_TARGET "container-attribute-target"
243 # define XML_RSC_ATTR_RESTART "restart-type"
244 # define XML_RSC_ATTR_ORDERED "ordered"
245 # define XML_RSC_ATTR_INTERLEAVE "interleave"
246 # define XML_RSC_ATTR_INCARNATION "clone"
247 # define XML_RSC_ATTR_PROMOTABLE "promotable"
248 # define XML_RSC_ATTR_MANAGED "is-managed"
249 # define XML_RSC_ATTR_TARGET_ROLE "target-role"
250 # define XML_RSC_ATTR_UNIQUE "globally-unique"
251 # define XML_RSC_ATTR_NOTIFY "notify"
252 # define XML_RSC_ATTR_STICKINESS "resource-stickiness"
253 # define XML_RSC_ATTR_MULTIPLE "multiple-active"
254 # define XML_RSC_ATTR_REQUIRES "requires"
255 # define XML_RSC_ATTR_CONTAINER "container"
256 # define XML_RSC_ATTR_INTERNAL_RSC "internal_rsc"
257 # define XML_RSC_ATTR_MAINTENANCE "maintenance"
258 # define XML_RSC_ATTR_REMOTE_NODE "remote-node"
259 # define XML_RSC_ATTR_CLEAR_OP "clear_failure_op"
260 # define XML_RSC_ATTR_CLEAR_INTERVAL "clear_failure_interval"
261 # define XML_RSC_ATTR_REMOTE_RA_ADDR "addr"
262 # define XML_RSC_ATTR_REMOTE_RA_SERVER "server"
263 # define XML_RSC_ATTR_REMOTE_RA_PORT "port"
264 # define XML_RSC_ATTR_CRITICAL "critical"
265 
266 # define XML_REMOTE_ATTR_RECONNECT_INTERVAL "reconnect_interval"
267 
268 # define XML_OP_ATTR_ON_FAIL "on-fail"
269 # define XML_OP_ATTR_START_DELAY "start-delay"
270 # define XML_OP_ATTR_ALLOW_MIGRATE "allow-migrate"
271 # define XML_OP_ATTR_ORIGIN "interval-origin"
272 # define XML_OP_ATTR_PENDING "record-pending"
273 # define XML_OP_ATTR_DIGESTS_ALL "digests-all"
274 # define XML_OP_ATTR_DIGESTS_SECURE "digests-secure"
275 
276 # define XML_CIB_TAG_LRM "lrm"
277 # define XML_LRM_TAG_RESOURCES "lrm_resources"
278 # define XML_LRM_TAG_RESOURCE "lrm_resource"
279 # define XML_LRM_TAG_RSC_OP "lrm_rsc_op"
280 # define XML_AGENT_ATTR_CLASS "class"
281 # define XML_AGENT_ATTR_PROVIDER "provider"
282 
284 # define XML_CIB_ATTR_REPLACE "replace"
285 
286 # define XML_CIB_ATTR_PRIORITY "priority"
287 
288 # define XML_NODE_IS_REMOTE "remote_node"
289 # define XML_NODE_IS_FENCED "node_fenced"
290 # define XML_NODE_IS_MAINTENANCE "node_in_maintenance"
291 
292 # define XML_CIB_ATTR_SHUTDOWN "shutdown"
293 
294 /* Aside from being an old name for the executor, LRM is a misnomer here because
295  * the controller and scheduler use these to track actions, which are not always
296  * executor operations.
297  */
298 
299 // XML attribute that takes interval specification (user-facing configuration)
300 # define XML_LRM_ATTR_INTERVAL "interval"
301 
302 // XML attribute that takes interval in milliseconds (daemon APIs)
303 // (identical value as above, but different constant allows clearer code intent)
304 # define XML_LRM_ATTR_INTERVAL_MS XML_LRM_ATTR_INTERVAL
305 
306 # define XML_LRM_ATTR_TASK "operation"
307 # define XML_LRM_ATTR_TASK_KEY "operation_key"
308 # define XML_LRM_ATTR_TARGET "on_node"
309 # define XML_LRM_ATTR_TARGET_UUID "on_node_uuid"
310 
314 # define XML_LRM_ATTR_ROUTER_NODE "router_node"
315 # define XML_LRM_ATTR_RSCID "rsc-id"
316 # define XML_LRM_ATTR_OPSTATUS "op-status"
317 # define XML_LRM_ATTR_RC "rc-code"
318 # define XML_LRM_ATTR_CALLID "call-id"
319 # define XML_LRM_ATTR_OP_DIGEST "op-digest"
320 # define XML_LRM_ATTR_OP_RESTART "op-force-restart"
321 # define XML_LRM_ATTR_OP_SECURE "op-secure-params"
322 # define XML_LRM_ATTR_RESTART_DIGEST "op-restart-digest"
323 # define XML_LRM_ATTR_SECURE_DIGEST "op-secure-digest"
324 # define XML_LRM_ATTR_EXIT_REASON "exit-reason"
325 
326 # define XML_RSC_OP_LAST_CHANGE "last-rc-change"
327 # define XML_RSC_OP_T_EXEC "exec-time"
328 # define XML_RSC_OP_T_QUEUE "queue-time"
329 
330 # define XML_LRM_ATTR_MIGRATE_SOURCE "migrate_source"
331 # define XML_LRM_ATTR_MIGRATE_TARGET "migrate_target"
332 
333 # define XML_TAG_GRAPH "transition_graph"
334 # define XML_GRAPH_TAG_RSC_OP "rsc_op"
335 # define XML_GRAPH_TAG_PSEUDO_EVENT "pseudo_event"
336 # define XML_GRAPH_TAG_CRM_EVENT "crm_event"
337 # define XML_GRAPH_TAG_DOWNED "downed"
338 # define XML_GRAPH_TAG_MAINTENANCE "maintenance"
339 
340 # define XML_TAG_RULE "rule"
341 # define XML_RULE_ATTR_SCORE "score"
342 # define XML_RULE_ATTR_SCORE_ATTRIBUTE "score-attribute"
343 # define XML_RULE_ATTR_ROLE "role"
344 # define XML_RULE_ATTR_BOOLEAN_OP "boolean-op"
345 
346 # define XML_TAG_EXPRESSION "expression"
347 # define XML_EXPR_ATTR_ATTRIBUTE "attribute"
348 # define XML_EXPR_ATTR_OPERATION "operation"
349 # define XML_EXPR_ATTR_VALUE "value"
350 # define XML_EXPR_ATTR_TYPE "type"
351 # define XML_EXPR_ATTR_VALUE_SOURCE "value-source"
352 
353 # define XML_CONS_TAG_RSC_DEPEND "rsc_colocation"
354 # define XML_CONS_TAG_RSC_ORDER "rsc_order"
355 # define XML_CONS_TAG_RSC_LOCATION "rsc_location"
356 # define XML_CONS_TAG_RSC_TICKET "rsc_ticket"
357 # define XML_CONS_TAG_RSC_SET "resource_set"
358 # define XML_CONS_ATTR_SYMMETRICAL "symmetrical"
359 
360 # define XML_LOCATION_ATTR_DISCOVERY "resource-discovery"
361 
362 # define XML_COLOC_ATTR_SOURCE "rsc"
363 # define XML_COLOC_ATTR_SOURCE_ROLE "rsc-role"
364 # define XML_COLOC_ATTR_TARGET "with-rsc"
365 # define XML_COLOC_ATTR_TARGET_ROLE "with-rsc-role"
366 # define XML_COLOC_ATTR_NODE_ATTR "node-attribute"
367 # define XML_COLOC_ATTR_INFLUENCE "influence"
368 
370 # define XML_COLOC_ATTR_SOURCE_INSTANCE "rsc-instance"
371 
373 # define XML_COLOC_ATTR_TARGET_INSTANCE "with-rsc-instance"
374 
375 # define XML_LOC_ATTR_SOURCE "rsc"
376 # define XML_LOC_ATTR_SOURCE_PATTERN "rsc-pattern"
377 
378 # define XML_ORDER_ATTR_FIRST "first"
379 # define XML_ORDER_ATTR_THEN "then"
380 # define XML_ORDER_ATTR_FIRST_ACTION "first-action"
381 # define XML_ORDER_ATTR_THEN_ACTION "then-action"
382 # define XML_ORDER_ATTR_KIND "kind"
383 
385 # define XML_ORDER_ATTR_FIRST_INSTANCE "first-instance"
386 
388 # define XML_ORDER_ATTR_THEN_INSTANCE "then-instance"
389 
390 # define XML_TICKET_ATTR_TICKET "ticket"
391 # define XML_TICKET_ATTR_LOSS_POLICY "loss-policy"
392 
393 # define XML_NVPAIR_ATTR_NAME "name"
394 # define XML_NVPAIR_ATTR_VALUE "value"
395 
396 # define XML_NODE_ATTR_RSC_DISCOVERY "resource-discovery-enabled"
397 
398 # define XML_CONFIG_ATTR_DC_DEADTIME "dc-deadtime"
399 # define XML_CONFIG_ATTR_ELECTION_FAIL "election-timeout"
400 # define XML_CONFIG_ATTR_FORCE_QUIT "shutdown-escalation"
401 # define XML_CONFIG_ATTR_RECHECK "cluster-recheck-interval"
402 # define XML_CONFIG_ATTR_FENCE_REACTION "fence-reaction"
403 # define XML_CONFIG_ATTR_SHUTDOWN_LOCK "shutdown-lock"
404 # define XML_CONFIG_ATTR_SHUTDOWN_LOCK_LIMIT "shutdown-lock-limit"
405 # define XML_CONFIG_ATTR_PRIORITY_FENCING_DELAY "priority-fencing-delay"
406 # define XML_CONFIG_ATTR_NODE_PENDING_TIMEOUT "node-pending-timeout"
407 
408 # define XML_ALERT_ATTR_PATH "path"
409 # define XML_ALERT_ATTR_TIMEOUT "timeout"
410 # define XML_ALERT_ATTR_TSTAMP_FORMAT "timestamp-format"
411 # define XML_ALERT_ATTR_REC_VALUE "value"
412 
413 # define XML_CIB_TAG_GENERATION_TUPPLE "generation_tuple"
414 
415 # define XML_ATTR_TRANSITION_MAGIC "transition-magic"
416 # define XML_ATTR_TRANSITION_KEY "transition-key"
417 
418 # define XML_ATTR_TE_NOWAIT "op_no_wait"
419 # define XML_ATTR_TE_TARGET_RC "op_target_rc"
420 # define XML_TAG_TRANSIENT_NODEATTRS "transient_attributes"
421 
423 # define XML_TAG_DIFF_ADDED "diff-added"
424 
426 # define XML_TAG_DIFF_REMOVED "diff-removed"
427 
428 # define XML_ACL_TAG_USER "acl_target"
429 # define XML_ACL_TAG_USERv1 "acl_user"
430 # define XML_ACL_TAG_GROUP "acl_group"
431 # define XML_ACL_TAG_ROLE "acl_role"
432 # define XML_ACL_TAG_PERMISSION "acl_permission"
433 # define XML_ACL_TAG_ROLE_REF "role"
434 # define XML_ACL_TAG_ROLE_REFv1 "role_ref"
435 # define XML_ACL_ATTR_KIND "kind"
436 # define XML_ACL_TAG_READ "read"
437 # define XML_ACL_TAG_WRITE "write"
438 # define XML_ACL_TAG_DENY "deny"
439 # define XML_ACL_ATTR_REF "reference"
440 # define XML_ACL_ATTR_REFv1 "ref"
441 # define XML_ACL_ATTR_TAG "object-type"
442 # define XML_ACL_ATTR_TAGv1 "tag"
443 # define XML_ACL_ATTR_XPATH "xpath"
444 # define XML_ACL_ATTR_ATTRIBUTE "attribute"
445 
446 # define XML_CIB_TAG_TICKETS "tickets"
447 # define XML_CIB_TAG_TICKET_STATE "ticket_state"
448 
449 # define XML_CIB_TAG_TAGS "tags"
450 # define XML_CIB_TAG_TAG "tag"
451 # define XML_CIB_TAG_OBJ_REF "obj_ref"
452 
453 # define XML_TAG_FENCING_TOPOLOGY "fencing-topology"
454 # define XML_TAG_FENCING_LEVEL "fencing-level"
455 # define XML_ATTR_STONITH_INDEX "index"
456 # define XML_ATTR_STONITH_TARGET "target"
457 # define XML_ATTR_STONITH_TARGET_VALUE "target-value"
458 # define XML_ATTR_STONITH_TARGET_PATTERN "target-pattern"
459 # define XML_ATTR_STONITH_TARGET_ATTRIBUTE "target-attribute"
460 # define XML_ATTR_STONITH_DEVICES "devices"
461 
462 # define XML_TAG_DIFF "diff"
463 # define XML_DIFF_VERSION "version"
464 # define XML_DIFF_VSOURCE "source"
465 # define XML_DIFF_VTARGET "target"
466 # define XML_DIFF_CHANGE "change"
467 # define XML_DIFF_LIST "change-list"
468 # define XML_DIFF_ATTR "change-attr"
469 # define XML_DIFF_RESULT "change-result"
470 # define XML_DIFF_OP "operation"
471 # define XML_DIFF_PATH "path"
472 # define XML_DIFF_POSITION "position"
473 
474 # define ID(x) crm_element_value(x, XML_ATTR_ID)
475 
476 #ifdef __cplusplus
477 }
478 #endif
479 
480 #endif
Deprecated Pacemaker XML constants API.
Wrappers for and extensions to libxml2.