pacemaker 3.0.1-16e74fc4da
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
pacemaker.h
Go to the documentation of this file.
1/*
2 * Copyright 2019-2025 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__PACEMAKER__H
11# define PCMK__PACEMAKER__H
12
13# include <glib.h>
14# include <libxml/tree.h>
15# include <crm/common/scheduler.h>
16# include <crm/cib/cib_types.h>
17
18# include <crm/stonith-ng.h>
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
35 // @COMPAT Use UINT32_C(1); should not affect behavior
45};
46
51typedef struct {
53 GList *node_up;
55 GList *node_down;
57 GList *node_fail;
62 GList *op_inject;
67 GList *op_fail;
77 char *watchdog;
79 char *quorum;
81
96int pcmk_controller_status(xmlNodePtr *xml, const char *node_name,
97 unsigned int message_timeout_ms);
98
111int pcmk_designated_controller(xmlNodePtr *xml,
112 unsigned int message_timeout_ms);
113
120
152int pcmk_query_node_info(xmlNodePtr *xml, uint32_t *node_id, char **node_name,
153 char **uuid, char **state, bool *have_quorum,
154 bool *is_remote, bool show_output,
155 unsigned int message_timeout_ms);
156
175static inline int
176pcmk_query_node_name(xmlNodePtr *xml, uint32_t node_id, char **node_name,
177 unsigned int message_timeout_ms)
178{
179 return pcmk_query_node_info(xml, &node_id, node_name, NULL, NULL, NULL,
180 NULL, false, message_timeout_ms);
181}
182
196int pcmk_pacemakerd_status(xmlNodePtr *xml, const char *ipc_name,
197 unsigned int message_timeout_ms);
198
211int pcmk_resource_delete(xmlNodePtr *xml, const char *rsc_id, const char *rsc_type);
212
223int pcmk_resource_digests(xmlNodePtr *xml, pcmk_resource_t *rsc,
224 const pcmk_node_t *node, GHashTable *overrides);
225
253int pcmk_simulate(xmlNodePtr *xml, pcmk_scheduler_t *scheduler,
254 const pcmk_injections_t *injections, unsigned int flags,
255 unsigned int section_opts, const char *use_date,
256 const char *input_file, const char *graph_file,
257 const char *dot_file);
258
273int pcmk_verify(xmlNodePtr *xml, const char *cib_source);
274
283int pcmk_list_nodes(xmlNodePtr *xml, const char *node_types);
284
292int pcmk_status(xmlNodePtr *xml);
293
306int pcmk_check_rules(xmlNodePtr *xml, xmlNodePtr input, const crm_time_t *date,
307 const char **rule_ids);
308
320static inline int
321pcmk_check_rule(xmlNodePtr *xml, xmlNodePtr input, const crm_time_t *date,
322 const char *rule_id)
323{
324 const char *rule_ids[] = {rule_id, NULL};
325 return pcmk_check_rules(xml, input, date, rule_ids);
326}
327
335
348int pcmk_show_result_code(xmlNodePtr *xml, int code, enum pcmk_result_type type,
349 uint32_t flags);
350
362int pcmk_list_result_codes(xmlNodePtr *xml, enum pcmk_result_type type,
363 uint32_t flags);
364
373int pcmk_list_alternatives(xmlNodePtr *xml, const char *agent_spec);
374
383int pcmk_list_agents(xmlNodePtr *xml, char *agent_spec);
384
393int pcmk_list_providers(xmlNodePtr *xml, const char *agent_spec);
394
402int pcmk_list_standards(xmlNodePtr *xml);
403
415int pcmk_list_cluster_options(xmlNode **xml, bool all);
416
430int pcmk_list_fencing_params(xmlNode **xml, bool all);
431
442int pcmk_list_primitive_meta(xmlNode **xml, bool all);
443
453int pcmk_ticket_constraints(xmlNodePtr *xml, const char *ticket_id);
454
455
466int pcmk_ticket_delete(xmlNodePtr *xml, const char *ticket_id, bool force);
467
479int pcmk_ticket_get_attr(xmlNodePtr *xml, const char *ticket_id,
480 const char *attr_name, const char *attr_default);
481
491int pcmk_ticket_info(xmlNodePtr *xml, const char *ticket_id);
492
505int pcmk_ticket_remove_attr(xmlNodePtr *xml, const char *ticket_id, GList *attr_delete,
506 bool force);
507
525int pcmk_ticket_set_attr(xmlNodePtr *xml, const char *ticket_id, GHashTable *attr_set,
526 bool force);
527
540int pcmk_ticket_state(xmlNodePtr *xml, const char *ticket_id);
541
563int pcmk_request_fencing(xmlNodePtr *xml, const char *target, const char *action,
564 const char *name, unsigned int timeout,
565 unsigned int tolerance, int delay, char **reason);
566
583int pcmk_fence_history(xmlNodePtr *xml, const char *target, unsigned int timeout,
584 bool quiet, int verbose, bool broadcast, bool cleanup);
585
595int pcmk_fence_installed(xmlNodePtr *xml, unsigned int timeout);
596
607int pcmk_fence_last(xmlNodePtr *xml, const char *target, bool as_nodeid);
608
619int pcmk_fence_list_targets(xmlNodePtr *xml, const char *device_id,
620 unsigned int timeout);
621
635int pcmk_fence_metadata(xmlNodePtr *xml, const char *agent, unsigned int timeout);
636
647int pcmk_fence_registered(xmlNodePtr *xml, const char *target, unsigned int timeout);
648
662int pcmk_fence_register_level(xmlNodePtr *xml, const char *target, int fence_level,
663 GList *devices);
664
677int pcmk_fence_unregister_level(xmlNodePtr *xml, const char *target, int fence_level);
678
691int pcmk_fence_validate(xmlNodePtr *xml, const char *agent, const char *id,
692 GHashTable *params, unsigned int timeout);
693
694#ifdef __cplusplus
695}
696#endif
697
698#endif
const char * name
Definition cib.c:26
Data types for Cluster Information Base access.
uint64_t flags
Definition remote.c:3
enum pcmk_ipc_server type
Definition cpg.c:3
struct crm_time_s crm_time_t
Definition iso8601.h:32
pcmk_scheduler_t * scheduler
xmlNode * input
int pcmk_ticket_set_attr(xmlNodePtr *xml, const char *ticket_id, GHashTable *attr_set, bool force)
Set the given attribute(s) on a ticket.
int pcmk_list_fencing_params(xmlNode **xml, bool all)
List common fencing resource parameters.
int pcmk_fence_list_targets(xmlNodePtr *xml, const char *device_id, unsigned int timeout)
List nodes that can be fenced.
Definition pcmk_fence.c:459
int pcmk_ticket_remove_attr(xmlNodePtr *xml, const char *ticket_id, GList *attr_delete, bool force)
Remove the given attribute(s) from a ticket.
int pcmk_controller_status(xmlNodePtr *xml, const char *node_name, unsigned int message_timeout_ms)
Get and output controller status.
int pcmk_list_providers(xmlNodePtr *xml, const char *agent_spec)
List all available OCF providers for the given agent.
pcmk_sim_flags
Modify operation of running a cluster simulation.
Definition pacemaker.h:34
@ pcmk_sim_none
Definition pacemaker.h:36
@ pcmk_sim_verbose
Definition pacemaker.h:44
@ pcmk_sim_sanitized
Definition pacemaker.h:43
@ pcmk_sim_show_scores
Definition pacemaker.h:40
@ pcmk_sim_simulate
Definition pacemaker.h:42
@ pcmk_sim_process
Definition pacemaker.h:39
@ pcmk_sim_show_pending
Definition pacemaker.h:38
@ pcmk_sim_all_actions
Definition pacemaker.h:37
@ pcmk_sim_show_utilization
Definition pacemaker.h:41
int pcmk_list_result_codes(xmlNodePtr *xml, enum pcmk_result_type type, uint32_t flags)
List all valid result codes in a particular family.
int pcmk_list_primitive_meta(xmlNode **xml, bool all)
void pcmk_free_injections(pcmk_injections_t *injections)
Free a :pcmk_injections_t structure.
int pcmk_designated_controller(xmlNodePtr *xml, unsigned int message_timeout_ms)
Get and output designated controller node name.
int pcmk_list_nodes(xmlNodePtr *xml, const char *node_types)
Get nodes list.
int pcmk_ticket_get_attr(xmlNodePtr *xml, const char *ticket_id, const char *attr_name, const char *attr_default)
Return the value of a ticket's attribute.
int pcmk_fence_validate(xmlNodePtr *xml, const char *agent, const char *id, GHashTable *params, unsigned int timeout)
Validate a fence device configuration.
Definition pcmk_fence.c:632
int pcmk_fence_installed(xmlNodePtr *xml, unsigned int timeout)
List all installed fence agents.
Definition pcmk_fence.c:377
int pcmk_verify(xmlNodePtr *xml, const char *cib_source)
Verify that a CIB is error-free or output errors and warnings.
pcmk_rc_disp_flags
Bit flags to control which fields of result code info are displayed.
Definition pacemaker.h:329
@ pcmk_rc_disp_none
(Does nothing)
Definition pacemaker.h:330
@ pcmk_rc_disp_code
Display result code number.
Definition pacemaker.h:331
@ pcmk_rc_disp_name
Display result code name.
Definition pacemaker.h:332
@ pcmk_rc_disp_desc
Display result code description.
Definition pacemaker.h:333
int pcmk_pacemakerd_status(xmlNodePtr *xml, const char *ipc_name, unsigned int message_timeout_ms)
Get and output pacemakerd status.
int pcmk_list_cluster_options(xmlNode **xml, bool all)
List all available cluster options.
int pcmk_show_result_code(xmlNodePtr *xml, int code, enum pcmk_result_type type, uint32_t flags)
Display the name and/or description of a result code.
int pcmk_ticket_constraints(xmlNodePtr *xml, const char *ticket_id)
Return constraints that apply to the given ticket.
int pcmk_list_standards(xmlNodePtr *xml)
List all available resource agent standards.
int pcmk_resource_digests(xmlNodePtr *xml, pcmk_resource_t *rsc, const pcmk_node_t *node, GHashTable *overrides)
Calculate and output resource operation digests.
int pcmk_check_rules(xmlNodePtr *xml, xmlNodePtr input, const crm_time_t *date, const char **rule_ids)
Check whether each rule in a list is in effect.
Definition pcmk_rule.c:196
int pcmk_request_fencing(xmlNodePtr *xml, const char *target, const char *action, const char *name, unsigned int timeout, unsigned int tolerance, int delay, char **reason)
Ask the cluster to perform fencing.
Definition pcmk_fence.c:231
int pcmk_status(xmlNodePtr *xml)
Output cluster status formatted like crm_mon --output-as=xml
int pcmk_fence_history(xmlNodePtr *xml, const char *target, unsigned int timeout, bool quiet, int verbose, bool broadcast, bool cleanup)
List the fencing operations that have occurred for a specific node.
Definition pcmk_fence.c:330
int pcmk_fence_unregister_level(xmlNodePtr *xml, const char *target, int fence_level)
Unregister a fencing topology level.
Definition pcmk_fence.c:598
int pcmk_query_node_info(xmlNodePtr *xml, uint32_t *node_id, char **node_name, char **uuid, char **state, bool *have_quorum, bool *is_remote, bool show_output, unsigned int message_timeout_ms)
Get and optionally output node info corresponding to a node ID from the controller.
int pcmk_fence_registered(xmlNodePtr *xml, const char *target, unsigned int timeout)
List registered fence devices.
Definition pcmk_fence.c:544
int pcmk_ticket_delete(xmlNodePtr *xml, const char *ticket_id, bool force)
Delete a ticket's state from the local cluster site.
int pcmk_simulate(xmlNodePtr *xml, pcmk_scheduler_t *scheduler, const pcmk_injections_t *injections, unsigned int flags, unsigned int section_opts, const char *use_date, const char *input_file, const char *graph_file, const char *dot_file)
Simulate a cluster's response to events.
int pcmk_fence_metadata(xmlNodePtr *xml, const char *agent, unsigned int timeout)
Get metadata for a fence agent.
Definition pcmk_fence.c:496
int pcmk_resource_delete(xmlNodePtr *xml, const char *rsc_id, const char *rsc_type)
Remove a resource.
int pcmk_fence_register_level(xmlNodePtr *xml, const char *target, int fence_level, GList *devices)
Register a fencing topology level.
Definition pcmk_fence.c:571
int pcmk_ticket_state(xmlNodePtr *xml, const char *ticket_id)
Return a ticket's state XML.
int pcmk_list_alternatives(xmlNodePtr *xml, const char *agent_spec)
List available providers for the given OCF agent.
Definition pcmk_agents.c:50
int pcmk_fence_last(xmlNodePtr *xml, const char *target, bool as_nodeid)
When was a device last fenced?
Definition pcmk_fence.c:415
int pcmk_list_agents(xmlNodePtr *xml, char *agent_spec)
List all agents available for the named standard and/or provider.
int pcmk_ticket_info(xmlNodePtr *xml, const char *ticket_id)
Return information about the given ticket.
unsigned int timeout
Definition pcmk_fence.c:34
int delay
Definition pcmk_fence.c:36
unsigned int tolerance
Definition pcmk_fence.c:35
const char * action
Definition pcmk_fence.c:32
const char * target
Definition pcmk_fence.c:31
pcmk_result_type
Types of Pacemaker result codes.
Definition results.h:341
Scheduler API.
Fencing aka. STONITH.
Synthetic cluster events that can be injected into the cluster for running simulations.
Definition pacemaker.h:51
GList * node_down
Definition pacemaker.h:55
GList * ticket_activate
Definition pacemaker.h:75
GList * ticket_grant
Definition pacemaker.h:69
GList * ticket_revoke
Definition pacemaker.h:71
GList * node_fail
Definition pacemaker.h:57
GList * op_inject
Definition pacemaker.h:62
GList * ticket_standby
Definition pacemaker.h:73