Proposed Pacemaker API Changes
These are proposed Pacemaker changes that are significant enough for a major or minor version bump (2.x or 3.0). They are subject to change and discussion, and could be rejected.
These are proposed backward-compatible changes to Pacemaker's public C API.
All applications linking against the Pacemaker libraries would need to be recompiled if any of these changes were implemented.
For some of these changes, applications can continue to use the old symbols by including <crm/compatibility.h>. However, that should be used only to allow a gradual transition to using the newer names. The old symbols will be removed from compatibility.h at the next major version.
Contents
Library changes
libcrmcluster will likely be renamed libpacemaker-cluster and explicitly considered internal API only.
Removed with no replacement
Preprocessor symbols |
---|
XML_RSC_OP_LAST_RUN |
Library functions |
create_hello_message() |
enums |
pe_restart |
enum values and global variables |
pe_order_stonith_stop |
pe_link_dup |
pe_print_dev |
cib_inhibit_bcast |
Structure members |
pe_working_set_t:stonith_timeout and max_valid_nodes |
Search-and-replace changes
Legacy usage | Current usage |
---|---|
deprecated functions in rules.h | new equivalents |
action_t | pe_action_t |
action_wrapper_t | pe_action_wrapper_t |
node_t | pe_node_t |
resource_t | pe_resource_t |
action_t | pe_action_t |
tag_t | pe_tag_t |
ticket_t | pe_ticket_t |
no_quorum_policy_t | enum no_quorum_policy |
do_crm_log_always() | appropriate level-specific logging function (crm_err(), crm_warn(), etc.) |
crm_signal(sig, dispatch) | crm_signal_handler(sig, dispatch) != SIG_ERR |
crm_get_interval() | crm_parse_interval_spec() |
crm_provider_required() | equivalent call to pcmk_get_ra_caps() |
get_stonith_provider(agent, provider) | stonith_namespace2text(stonith_get_namespace(agent, provider) |
INFINITY | CRM_SCORE_INFINITY |
INFINITY_S | CRM_INFINITY_S |
MINUS_INFINITY_S | CRM_MINUS_INFINITY_S |
Changes in function interfaces
- "log level" arguments should be uint8_t in various functions that take it
- unused sort argument to calculate_xml_versioned_digest() has been removed
Changes in structs
- lrmd_event_data_t t_run etc. should be time_t
- pe_node_shared_s gboolean arguments should be replaced with a single bitmask argument
- pe_action_wrapper_s:type is now uint32_t order_flags
- pe_resource_s restart_type, is_remote_node, and exclusive_discover members have been replaced with bits in the flags member