pacemaker  2.1.5-b7adf64e51
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/cib/cib_types.h>
#include <crm/pengine/pe_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) }
 

Functions

int pcmk_controller_status (xmlNodePtr *xml, char *dest_node, unsigned int message_timeout_ms)
 Get controller status. More...
 
int pcmk_designated_controller (xmlNodePtr *xml, unsigned int message_timeout_ms)
 Get designated controller. More...
 
void pcmk_free_injections (pcmk_injections_t *injections)
 Free a :pcmk_injections_t structure. 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, pe_resource_t *rsc, pe_node_t *node, GHashTable *overrides, pe_working_set_t *data_set)
 Calculate and output resource operation digests. More...
 
int pcmk_simulate (xmlNodePtr *xml, pe_working_set_t *data_set, pcmk_injections_t *injections, unsigned int flags, unsigned int section_opts, char *use_date, char *input_file, char *graph_file, char *dot_file)
 Simulate a cluster's response to events. More...
 
int pcmk_list_nodes (xmlNodePtr *xml, char *node_types)
 Get nodes list. More...
 
int pcmk_status (xmlNodePtr *xml)
 Output the current status of the cluster, formatted in the same way that crm_mon --output-as=xml would. 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)
 
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...
 

Detailed Description

High Level API.

Definition in file pacemaker.h.

Enumeration Type Documentation

◆ pcmk_rc_disp_flags

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 234 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,
char *  dest_node,
unsigned int  message_timeout_ms 
)

Get controller status.

Parameters
[in,out]xmlThe destination for the result, as an XML tree.
[in]dest_nodeDestination node for request
[in]message_timeout_msMessage timeout
Returns
Standard Pacemaker return code

Definition at line 327 of file pcmk_cluster_queries.c.

◆ pcmk_designated_controller()

int pcmk_designated_controller ( xmlNodePtr *  xml,
unsigned int  message_timeout_ms 
)

Get designated controller.

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

Definition at line 384 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 732 of file pcmk_injections.c.

◆ pcmk_list_nodes()

int pcmk_list_nodes ( xmlNodePtr *  xml,
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 568 of file pcmk_cluster_queries.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_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. If positive, pcmk_ipc_dispatch_main will be used, and a new mainloop will be created for this purpose (freed before return).
Returns
Standard Pacemaker return code

Definition at line 468 of file pcmk_cluster_queries.c.

◆ pcmk_resource_digests()

int pcmk_resource_digests ( xmlNodePtr *  xml,
pe_resource_t rsc,
pe_node_t node,
GHashTable *  overrides,
pe_working_set_t data_set 
)

Calculate and output resource operation digests.

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

Definition at line 157 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 
)

Definition at line 62 of file pcmk_result_code.c.

◆ pcmk_simulate()

int pcmk_simulate ( xmlNodePtr *  xml,
pe_working_set_t data_set,
pcmk_injections_t injections,
unsigned int  flags,
unsigned int  section_opts,
char *  use_date,
char *  input_file,
char *  graph_file,
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]data_setWorking set for the cluster.
[in]eventsA 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_dateThe date 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). See pcmk__write_sim_dotfile().
Returns
Standard Pacemaker return code

Definition at line 966 of file pcmk_simulate.c.

◆ pcmk_status()

int pcmk_status ( xmlNodePtr *  xml)

Output the current status of the cluster, formatted in the same way that crm_mon --output-as=xml would.

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

Definition at line 170 of file pcmk_status.c.