pacemaker  2.1.7-0f7f88312f
Scalable High-Availability cluster resource manager
Data Structures | Enumerations | Functions
pacemaker.h File Reference

High Level API. More...

#include <glib.h>
#include <libxml/tree.h>
#include <crm/common/scheduler.h>
#include <crm/cib/cib_types.h>
#include <crm/stonith-ng.h>
Include dependency graph for pacemaker.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pcmk_injections_t
 Synthetic cluster events that can be injected into the cluster for running simulations. More...
 

Enumerations

enum  pcmk_sim_flags {
  pcmk_sim_none = 0, pcmk_sim_all_actions = 1 << 0, pcmk_sim_show_pending = 1 << 1, pcmk_sim_process = 1 << 2,
  pcmk_sim_show_scores = 1 << 3, pcmk_sim_show_utilization = 1 << 4, pcmk_sim_simulate = 1 << 5, pcmk_sim_sanitized = 1 << 6,
  pcmk_sim_verbose = 1 << 7
}
 Modify operation of running a cluster simulation. More...
 
enum  pcmk_rc_disp_flags { pcmk_rc_disp_none = 0, pcmk_rc_disp_code = (1 << 0), pcmk_rc_disp_name = (1 << 1), pcmk_rc_disp_desc = (1 << 2) }
 Bit flags to control which fields of result code info are displayed. More...
 

Functions

int pcmk_controller_status (xmlNodePtr *xml, const char *node_name, unsigned int message_timeout_ms)
 Get and output controller status. More...
 
int pcmk_designated_controller (xmlNodePtr *xml, unsigned int message_timeout_ms)
 Get and output designated controller node name. More...
 
void pcmk_free_injections (pcmk_injections_t *injections)
 Free a :pcmk_injections_t structure. More...
 
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. More...
 
int pcmk_pacemakerd_status (xmlNodePtr *xml, const char *ipc_name, unsigned int message_timeout_ms)
 Get and output pacemakerd status. More...
 
int pcmk_resource_digests (xmlNodePtr *xml, pcmk_resource_t *rsc, const pcmk_node_t *node, GHashTable *overrides, pcmk_scheduler_t *scheduler)
 Calculate and output resource operation digests. More...
 
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. More...
 
int pcmk_list_nodes (xmlNodePtr *xml, const char *node_types)
 Get nodes list. More...
 
int pcmk_status (xmlNodePtr *xml)
 Output cluster status formatted like crm_mon --output-as=xml More...
 
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. More...
 
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. More...
 
int pcmk_list_result_codes (xmlNodePtr *xml, enum pcmk_result_type type, uint32_t flags)
 List all valid result codes in a particular family. More...
 
int pcmk_list_alternatives (xmlNodePtr *xml, const char *agent_spec)
 List available providers for the given OCF agent. More...
 
int pcmk_list_agents (xmlNodePtr *xml, char *agent_spec)
 List all agents available for the named standard and/or provider. More...
 
int pcmk_list_providers (xmlNodePtr *xml, const char *agent_spec)
 List all available OCF providers for the given agent. More...
 
int pcmk_list_standards (xmlNodePtr *xml)
 List all available resource agent standards. More...
 

Detailed Description

High Level API.

Definition in file pacemaker.h.

Enumeration Type Documentation

◆ pcmk_rc_disp_flags

Bit flags to control which fields of result code info are displayed.

Enumerator
pcmk_rc_disp_none 

(Does nothing)

pcmk_rc_disp_code 

Display result code number.

pcmk_rc_disp_name 

Display result code name.

pcmk_rc_disp_desc 

Display result code description.

Definition at line 304 of file pacemaker.h.

◆ pcmk_sim_flags

Modify operation of running a cluster simulation.

Enumerator
pcmk_sim_none 
pcmk_sim_all_actions 
pcmk_sim_show_pending 
pcmk_sim_process 
pcmk_sim_show_scores 
pcmk_sim_show_utilization 
pcmk_sim_simulate 
pcmk_sim_sanitized 
pcmk_sim_verbose 

Definition at line 34 of file pacemaker.h.

Function Documentation

◆ pcmk_check_rules()

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.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
[in]inputThe CIB XML to check (if NULL, use current CIB)
[in]dateCheck whether the rule is in effect at this date and time (if NULL, use current date and time)
[in]rule_idsThe IDs of the rules to check, as a NULL- terminated list.
Returns
Standard Pacemaker return code

Definition at line 280 of file pcmk_rule.c.

◆ pcmk_controller_status()

int pcmk_controller_status ( xmlNodePtr *  xml,
const char *  node_name,
unsigned int  message_timeout_ms 
)

Get and output controller status.

Parameters
[in,out]xmlDestination for the result, as an XML tree
[in]node_nameName of node whose status is desired (NULL for DC)
[in]message_timeout_msHow long to wait for a reply from the pacemaker-controld API. If 0, pcmk_ipc_dispatch_sync will be used. Otherwise, pcmk_ipc_dispatch_poll will be used.
Returns
Standard Pacemaker return code

Definition at line 498 of file pcmk_cluster_queries.c.

◆ pcmk_designated_controller()

int pcmk_designated_controller ( xmlNodePtr *  xml,
unsigned int  message_timeout_ms 
)

Get and output designated controller node name.

Parameters
[in,out]xmlDestination for the result, as an XML tree
[in]message_timeout_msHow long to wait for a reply from the pacemaker-controld API. If 0, pcmk_ipc_dispatch_sync will be used. Otherwise, pcmk_ipc_dispatch_poll will be used.
Returns
Standard Pacemaker return code

Definition at line 567 of file pcmk_cluster_queries.c.

◆ pcmk_free_injections()

void pcmk_free_injections ( pcmk_injections_t injections)

Free a :pcmk_injections_t structure.

Parameters
[in,out]injectionsThe structure to be freed

Definition at line 769 of file pcmk_injections.c.

◆ pcmk_list_agents()

int pcmk_list_agents ( xmlNodePtr *  xml,
char *  agent_spec 
)

List all agents available for the named standard and/or provider.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
[in]agent_specSTD[:PROV]
Returns
Standard Pacemaker return code

Definition at line 121 of file pcmk_agents.c.

◆ pcmk_list_alternatives()

int pcmk_list_alternatives ( xmlNodePtr *  xml,
const char *  agent_spec 
)

List available providers for the given OCF agent.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
[in]agent_specResource agent name
Returns
Standard Pacemaker return code

Definition at line 50 of file pcmk_agents.c.

◆ pcmk_list_nodes()

int pcmk_list_nodes ( xmlNodePtr *  xml,
const char *  node_types 
)

Get nodes list.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
[in]node_typesNode type(s) to return (default: all)
Returns
Standard Pacemaker return code

Definition at line 884 of file pcmk_cluster_queries.c.

◆ pcmk_list_providers()

int pcmk_list_providers ( xmlNodePtr *  xml,
const char *  agent_spec 
)

List all available OCF providers for the given agent.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
[in]agent_specResource agent name
Returns
Standard Pacemaker return code

Definition at line 177 of file pcmk_agents.c.

◆ pcmk_list_result_codes()

int pcmk_list_result_codes ( xmlNodePtr *  xml,
enum pcmk_result_type  type,
uint32_t  flags 
)

List all valid result codes in a particular family.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
[in]typeThe family of result codes to list. Supported values: pcmk_result_legacy, pcmk_result_rc, pcmk_result_exitcode.
[in]flagsGroup of pcmk_rc_disp_flags
Returns
Standard Pacemaker return code

Definition at line 151 of file pcmk_result_code.c.

◆ pcmk_list_standards()

int pcmk_list_standards ( xmlNodePtr *  xml)

List all available resource agent standards.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
Returns
Standard Pacemaker return code

Definition at line 228 of file pcmk_agents.c.

◆ pcmk_pacemakerd_status()

int pcmk_pacemakerd_status ( xmlNodePtr *  xml,
const char *  ipc_name,
unsigned int  message_timeout_ms 
)

Get and output pacemakerd status.

Parameters
[in,out]xmlDestination for the result, as an XML tree
[in]ipc_nameIPC name for request
[in]message_timeout_msHow long to wait for a reply from the pacemakerd API. If 0, pcmk_ipc_dispatch_sync will be used. Otherwise, pcmk_ipc_dispatch_poll will be used.
Returns
Standard Pacemaker return code

Definition at line 786 of file pcmk_cluster_queries.c.

◆ pcmk_query_node_info()

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.

Parameters
[in,out]xmlDestination for the result, as an XML tree
[in,out]node_idID of node whose name to get. If NULL or 0, get the local node name. If not NULL, store the true node ID here on success.
[out]node_nameIf not NULL, where to store the node name
[out]uuidIf not NULL, where to store the node UUID
[out]stateIf not NULL, where to store the membership state
[out]is_remoteIf not NULL, where to store whether the node is a Pacemaker Remote node
[out]have_quorumIf not NULL, where to store whether the node has quorum
[in]show_outputWhether to output the node info
[in]message_timeout_msHow long to wait for a reply from the pacemaker-controld API. If 0, pcmk_ipc_dispatch_sync will be used. Otherwise, pcmk_ipc_dispatch_poll will be used.
Returns
Standard Pacemaker return code
Note
The caller is responsible for freeing *node_name, *uuid, and *state using free().

Definition at line 690 of file pcmk_cluster_queries.c.

◆ pcmk_resource_digests()

int pcmk_resource_digests ( xmlNodePtr *  xml,
pcmk_resource_t rsc,
const pcmk_node_t node,
GHashTable *  overrides,
pcmk_scheduler_t scheduler 
)

Calculate and output resource operation digests.

Parameters
[out]xmlWhere to store XML with result
[in,out]rscResource to calculate digests for
[in]nodeNode whose operation history should be used
[in]overridesHash table of configuration parameters to override
[in]schedulerScheduler data (with status)
Returns
Standard Pacemaker return code

Definition at line 158 of file pcmk_resource.c.

◆ pcmk_show_result_code()

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.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
[in]codeThe result code
[in]typeInterpret code as this type of result code. Supported values: pcmk_result_legacy, pcmk_result_rc, pcmk_result_exitcode.
[in]flagsGroup of pcmk_rc_disp_flags
Returns
Standard Pacemaker return code

Definition at line 62 of file pcmk_result_code.c.

◆ pcmk_simulate()

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.

This high-level function essentially implements crm_simulate(8). It operates on an input CIB file and various lists of events that can be simulated. It optionally writes out a variety of artifacts to show the results of the simulation. Output can be modified with various flags.

Parameters
[in,out]xmlThe destination for the result, as an XML tree
[in,out]schedulerScheduler data
[in]injectionsA structure containing cluster events (node up/down, tickets, injected operations)
[in]flagsA bitfield of :pcmk_sim_flags to modify operation of the simulation
[in]section_optsWhich portions of the cluster status output should be displayed?
[in]use_dateDate to set the cluster's time to (may be NULL)
[in]input_fileThe source CIB file, which may be overwritten by this function (may be NULL)
[in]graph_fileWhere to write the XML-formatted transition graph (may be NULL, in which case no file will be written)
[in]dot_fileWhere to write the dot(1) formatted transition graph (may be NULL, in which case no file will be written)
Returns
Standard Pacemaker return code

Definition at line 985 of file pcmk_simulate.c.

◆ pcmk_status()

int pcmk_status ( xmlNodePtr *  xml)

Output cluster status formatted like crm_mon --output-as=xml

Parameters
[in,out]xmlThe destination for the result, as an XML tree
Returns
Standard Pacemaker return code

Definition at line 154 of file pcmk_status.c.