Releases: ClusterLabs/pacemaker
Releases · ClusterLabs/pacemaker
Pacemaker 2.1.8 - Release Candidate 2
-
38 commits with 23 files changed, 600 insertions(+), 283 deletions(-)
-
Features added since Pacemaker-2.1.8-rc1
- libcrmcommon: support PCMK_panic_action="off" or "sync-off"
-
Fixes since Pacemaker-2.1.8-rc1
- libcrmcommon: avoid possible buffer overflows when parsing date/times
- libpacemaker: correctly retrieve any existing fail-count for increment (regression introduced in 2.1.8-rc1)
- libstonithd: avoid double free when invalid replies are received
- libstonithd: avoid use-after-free when retrieving metadata of Linux-HA fence agents (regression introduced in 2.1.8-rc1)
- libstonithd: free escaped metadata descriptions with g_free() (regression introduced in 2.1.8-rc1)
- tools: restore whitespace to attrd_updater query output (regression introduced in 2.1.8-rc1)
Pacemaker 2.1.8 - Release Candidate 1
-
2480 commits with 507 files changed, 45891 insertions(+), 22991 deletions(-)
-
Features added since Pacemaker-2.1.7
- CIB: deprecate omitting validate-with from the CIB or setting it to "none" or an unknown schema
- CIB: deprecate "default" and "#default" as explicit meta-attribute values
- CIB: deprecate resource-discovery-enabled node attribute
- CIB: deprecate support for multiple top-level rules within a location constraint (a single rule may still contain multiple sub-rules)
- CIB: deprecate support for node attribute expressions in rules beneath op, op_defaults, or fence device meta-attributes
- CIB: deprecate support for rkt in bundles
- CIB: drop support for (nonworking) rules based on the #role node attribute (role-based location constraints may still contain rules)
- CIB manager,controller,fencer,scheduler: deprecate "metadata" command-line option (instead, use crm_attribute --list-options mentioned below)
- pacemaker-remoted: newer schema files are now downloaded from the cluster, allowing more command-line tools to work when the Pacemaker Remote node has an older Pacemaker version
- agents: deprecate the ocf:pacemaker:o2cb resource agent
- tools: crm_attribute --list-options lists all possible cluster options
- tools: crm_resource --list-options lists all possible primitive meta-attributes or special fence device parameters
- tools: new --score option for cibadmin --modify and crm_attribute --update enables expansion of "++" and "+=" in attribute values without a warning (using such expansions without --score is now deprecated)
- tools: crm_ticket supports standard --output-as/--output-to arguments
- tools: deprecate --text-fancy standard command-line option
-
Fixes since Pacemaker-2.1.7
- tools: restore the (deprecated) ability to automatically correct malformed XML passed via standard input (regression introduced in 2.1.7)
- CIB manager: avoid memory leak from asynchronous client requests (regression introduced in 2.1.7)
- CIB: restore the (deprecated) ability to use validate-with="pacemaker-next" (regression introduced in 2.1.6)
- controller: avoid zombie children when asynchronous actions exit while a synchronous meta-data action is in progress (regression introduced in 2.1.5)
- libcrmcommon: avoid file descriptor leak in asynchronous IPC clients (regression introduced in 2.1.3)
- tools: crm_mon no longer crashes on some platforms when the fencer connection is lost (regression introduced in 2.1.0)
- attribute manager: write Pacemaker Remote node attributes even if node is not cached
- attribute manager: avoid use-after-free when remote node in cluster node cache
- attribute manager: correctly propagate utilization attributes to peers to avoid the possibility of later being written out as regular node attributes
- fencer: correctly parse action-specific timeouts with units other than seconds
- fencer: avoid unnecessary timeouts when the watchdog timeout is greater than a query timeout, per-device fencing timeout, or stonith-timeout
- libcrmcommon: don't assume next schema will validate when not transforming
- libcrmcommon: when displaying XML, don't show "<null>" for empty attribute values, and properly escape special characters
- scheduler: if the user specifies a timeout of 0, use the default 20s as documented
- agents: ocf:pacemaker:SysInfo respects attrd_updater dampening
- agents: ocf:pacemaker:HealthSMART properly handles SMART data missing temperature
- tools: cibadmin --replace now leaves "++" and "+=" unexpanded in XML attribute values rather than wrongly treat them as 0
- tools: cibsecret avoids possible truncation issue in process listing
- tools: crm_attribute --node localhost or --node auto works
- tools: crm_resource ignores resource meta-attribute node expressions for consistency with how the cluster works
- tools: crm_resource honors rules when getting utilization attributes
- tools: crm_verify --output-as=xml includes detailed messages
- tools: crm_mon exits upon loss of an attached pseudo-terminal to avoid possibility of 100% CPU usage (seen when run via sudo with use_pty configured)
-
Public API changes since Pacemaker-2.1.7
- libcib: add cib_score_update cib_call_options value
- libcib: deprecate functions cib_get_generation(), cib_metadata(), cib_pref(), query_node_uname(), and set_standby()
- libcib: deprecate T_CIB_DIFF_NOTIFY
- libcib: deprecate
<failed>
element in CIB create reply - libcrmcluster: add enum pcmk_cluster_layer
- libcrmcluster: add functions pcmk_cluster_connect(), pcmk_cluster_disconnect(), pcmk_cluster_layer_text(), pcmk_cluster_set_destroy_fn(), pcmk_cpg_set_confchg_fn(), pcmk_cpg_set_deliver_fn(), and pcmk_get_cluster_layer()
- libcrmcluster: add type pcmk_cluster_t
- libcrmcluster: deprecate functions cluster_connect_cpg(), cluster_disconnect_cpg(), crm_active_peers(), crm_cluster_connect(), crm_cluster_disconnect(), crm_get_peer(), crm_get_peer_full(), crm_is_corosync_peer_active(), crm_is_peer_active(), crm_join_phase_str(), crm_peer_destroy(), crm_peer_init(), crm_peer_uname(), crm_peer_uuid(), crm_remote_node_cache_size(), crm_remote_peer_cache_refresh(), crm_remote_peer_cache_remove(), crm_remote_peer_get(), crm_set_autoreap(), crm_set_status_callback(), get_cluster_type(), get_local_nodeid(), get_local_node_name(), get_node_name(), is_corosync_cluster(), name_for_cluster_type(), pcmk_cpg_membership(), pcmk_message_common_cs(), reap_crm_member(), send_cluster_message(), send_cluster_text(), and text2msg_type()
- libcrmcluster: deprecate enums crm_ais_msg_types, crm_status_type, cluster_type_e, crm_ais_msg_class, crm_get_peer_flags, crm_join_phase, and crm_node_flags, including all their values
- libcrmcluster: deprecate global variables crm_have_quorum, crm_peer_cache, crm_peer_seq, and crm_remote_peer_cache
- libcrmcluster: deprecate crm_cluster_t and struct crm_cluster_s, including all its members
- libcrmcluster: deprecate crm_node_t and struct crm_peer_node_s, including all its members
- libcrmcluster: deprecate constants CRM_NODE_LOST and CRM_NODE_MEMBER
- libcrmcommon: add constants PCMK_ACTION_METADATA, PCMK_META_ALLOW_MIGRATE, PCMK_META_ALLOW_UNHEALTHY_NODES, PCMK_META_CONTAINER_ATTRIBUTE_TARGET, PCMK_META_CRITICAL, PCMK_META_GLOBALLY_UNIQUE, PCMK_META_INTERLEAVE, PCMK_META_INTERVAL, PCMK_META_INTERVAL_ORIGIN, PCMK_META_IS_MANAGED, PCMK_META_MAINTENANCE, PCMK_META_MULTIPLE_ACTIVE, PCMK_META_NOTIFY, PCMK_META_ON_FAIL, PCMK_META_ORDERED, PCMK_META_PRIORITY, PCMK_META_PROMOTABLE, PCMK_META_RECORD_PENDING, PCMK_META_REMOTE_ADDR, PCMK_META_REMOTE_ALLOW_MIGRATE, PCMK_META_REMOTE_CONNECT_TIMEOUT, PCMK_META_REMOTE_NODE, PCMK_META_REMOTE_PORT, PCMK_META_REQUIRES, PCMK_META_RESOURCE_STICKINESS, PCMK_META_START_DELAY, PCMK_META_TARGET_ROLE, PCMK_META_TIMEOUT, PCMK_META_TIMESTAMP_FORMAT, PCMK_NODE_ATTR_MAINTENANCE, PCMK_NODE_ATTR_STANDBY, PCMK_OPT_BATCH_LIMIT, PCMK_OPT_CLUSTER_DELAY, PCMK_OPT_CLUSTER_INFRASTRUCTURE, PCMK_OPT_CLUSTER_IPC_LIMIT, PCMK_OPT_CLUSTER_NAME, PCMK_OPT_CLUSTER_RECHECK_INTERVAL, PCMK_OPT_CONCURRENT_FENCING, PCMK_OPT_DC_DEADTIME, PCMK_OPT_DC_VERSION, PCMK_OPT_ELECTION_TIMEOUT, PCMK_OPT_ENABLE_ACL, PCMK_OPT_ENABLE_STARTUP_PROBES, PCMK_OPT_FENCE_REACTION, PCMK_OPT_HAVE_WATCHDOG, PCMK_OPT_JOIN_FINALIZATION_TIMEOUT, PCMK_OPT_JOIN_INTEGRATION_TIMEOUT, PCMK_OPT_LOAD_THRESHOLD, PCMK_OPT_MAINTENANCE_MODE, PCMK_OPT_MIGRATION_LIMIT, PCMK_OPT_NODE_ACTION_LIMIT, PCMK_OPT_NODE_HEALTH_BASE, PCMK_OPT_NODE_HEALTH_GREEN, PCMK_OPT_NODE_HEALTH_RED, PCMK_OPT_NODE_HEALTH_STRATEGY, PCMK_OPT_NODE_HEALTH_YELLOW, PCMK_OPT_NODE_PENDING_TIMEOUT, PCMK_OPT_NO_QUORUM_POLICY, PCMK_OPT_PE_ERROR_SERIES_MAX, PCMK_OPT_PE_INPUT_SERIES_MAX, PCMK_OPT_PE_WARN_SERIES_MAX, PCMK_OPT_PLACEMENT_STRATEGY, PCMK_OPT_PRIORITY_FENCING_DELAY, PCMK_OPT_SHUTDOWN_ESCALATION, PCMK_OPT_SHUTDOWN_LOCK, PCMK_OPT_SHUTDOWN_LOCK_LIMIT, PCMK_OPT_STARTUP_FENCING, PCMK_OPT_START_FAILURE_IS_FATAL, PCMK_OPT_STONITH_ACTION, PCMK_OPT_STONITH_ENABLED, PCMK_OPT_STONITH_MAX_ATTEMPTS, PCMK_OPT_STONITH_TIMEOUT, PCMK_OPT_STONITH_WATCHDOG_TIMEOUT, PCMK_OPT_STOP_ALL_RESOURCES, PCMK_OPT_STOP_ORPHAN_ACTIONS, PCMK_OPT_STOP_ORPHAN_RESOURCES, PCMK_OPT_SYMMETRIC_CLUSTER, PCMK_OPT_TRANSITION_DELAY, PCMK_REMOTE_RA_ADDR, PCMK_REMOTE_RA_PORT, PCMK_REMOTE_RA_RECONNECT_INTERVAL, PCMK_REMOTE_RA_SERVER, PCMK_ROLE_PROMOTED, PCMK_ROLE_STARTED, PCMK_ROLE_STOPPED, PCMK_ROLE_UNPROMOTED, PCMK_SCORE_INFINITY, PCMK_VALUE_ALWAYS, PCMK_VALUE_AND, PCMK_VALUE_BALANCED, PCMK_VALUE_BLOCK, PCMK_VALUE_BOOLEAN, PCMK_VALUE_CIB_BOOTSTRAP_OPTIONS, PCMK_VALUE_COROSYNC, PCMK_VALUE_CREATE, PCMK_VALUE_CUSTOM, PCMK_VALUE_DATE_SPEC, PCMK_VALUE_DEFAULT, PCMK_VALUE_DEFINED, PCMK_VALUE_DELETE, PCMK_VALUE_DEMOTE, PCMK_VALUE_DENY, PCMK_VALUE_DURATION, PCMK_VALUE_DYNAMIC_LIST, PCMK_VALUE_EQ, PCMK_VALUE_EXCLUSIVE, PCMK_VALUE_FAILED, PCMK_VALUE_FALSE, PCMK_VALUE_FENCE, PCMK_VALUE_FENCE_LEGACY, PCMK_VALUE_FENCING, PCMK_VALUE_FREEZE, PCMK_VALUE_GRANTED, PCMK_VALUE_GREEN, PCMK_VALUE_GT, PCMK_VALUE_GTE, PCMK_VALUE_HOST, PCMK_VALUE_IGNORE, PCMK_VALUE_IN_RANGE, PCMK_VALUE_INFINITY, PCMK_VALUE_INTEGER, PCMK_VALUE_LITERAL, PCMK_VALUE_LT, PCMK_VALUE_LTE, PCMK_VALUE_MANDATORY, PCMK_VALUE_MEMBER, PCMK_VALUE_META, PCMK_VALUE_MIGRATE_ON_RED, PCMK_VALUE_MINIMAL, PCMK_VALUE_MINUS_INFINITY, PCMK_VALUE_MODIFY, PCMK_VALUE_MOVE, PCMK_VALUE_NE, PCMK_VALUE_NEVER, PCMK_VALUE_NONE, PCMK_VALUE_NONNEGATIVE_INTEGER, PCMK_VALUE_NOTHING, PCMK_VALUE_NOT_DEFINED, PCMK_VALUE_NUMBER, PCMK_VALUE_OFFLINE, PCMK_VALUE_ONLINE, PCMK_VALUE_ONLY_GREEN, PCMK_VALUE_OPTIONAL, PCMK_VALUE_OR, PCMK_VALUE_PANIC, PCMK_VALUE_PARAM, PCMK_VALUE_PENDING, PCMK_VALUE_PERCENTAGE, PCMK_VALUE_PLUS_INFINITY, PCMK_VALUE_PORT, PCMK_VALUE_PROGRESSIVE, PCMK_VALUE_QUORUM, PCMK_VALUE_READ, PCMK_VALUE_RED, PCMK_VALUE_REMOTE, PCMK_VALUE_RESTART, PCMK_VALUE_RESTART_CONTAINER, PCMK_VALUE_REVOKED, PCMK_VALUE_SCORE, PCMK_VALUE_SELECT, PCMK_VALUE_SER...
Pacemaker 2.1.7 - Final
Release info
- Tue Dec 19 2023 Ken Gaillot kgaillot@redhat.com Pacemaker-2.1.7
- 1388 commits with 358 files changed, 23771 insertions(+), 17219 deletions(-)
Known regressions introduced in this release
- Controller: alerts added as part of a newly added alerts section do not take effect immediately (fixed in 2.1.9)
- CIB manager: asynchronous client requests cause a memory leak (fixed in 2.1.8)
- tools: tools that accept XML from standard input will exit with error status rather than auto-correct certain invalid XML syntax (fixed in 2.1.8)
- tools: crm_node -i/--cluster-id can fail to return a value due to an uninitialized variable (fixed in 2.1.8)
- tools: crm_verify no longer distinguishes between configuration warnings and errors (fixed in 2.1.8)
- scheduler: colocations can be applied twice for promotion priority (fixed in 2.1.8)
Features added since Pacemaker-2.1.6
- build: allow building with libxml2 2.12.0 and greater
- CIB: deprecate
ordering
attribute ofresource_set
- CIB: new cluster option
node-pending-timeout
(defaulting to 0, meaning no timeout, to preserve existing behavior) allows fencing of nodes that do not join Pacemaker's controller group within this much time after joining the cluster - controller:
PCMK_node_start_state
environment variable now works with Pacemaker Remote nodes - tools:
crm_verify
now supports--quiet
option (currently same as default behavior, but in the future, verbose behavior might become the default, so script writers are recommended to explicitly add--quiet
if they do not want output) - tools:
crm_node
supports standard--output-as
/--output-to
arguments - tests:
CTSlab.py
was renamed tocts-lab
Fixes since Pacemaker-2.1.6
- logging: restore ability to enable XML trace logs by file and function (regression introduced in 2.1.6)
- scheduler: avoid double free with disabled recurring actions (regression introduced in 2.1.5)
- tools: consider dampening argument when setting values with attrd_updater (regression introduced in 2.1.5)
- tools: wait for reply from crm_node -R (regression introduced in 2.0.5)
- agents: handle dampening parameter consistently and correctly
- CIB: be more strict about ignoring colocation elements without an ID
- controller: do not check whether watchdog fencing is enabled if "stonith-watchdog-timeout" is not configured
- controller: don't try to execute agent action at shutdown
- controller: avoid race condition when updating node state during join
- controller: correctly determine state of a fenced node without a name
- controller: wait a second between fencer connection attempts
- libpacemaker: avoid shuffling clone instances unnecessarily
- libpacemaker: get bundle container's promotion score from correct node
- libpacemaker: role-based colocations now work with bundles
- libpacemaker:
clone-node-max
now works with cloned groups - scheduler: compare anti-colocation dependent negative preferences against stickiness
- scheduler: consider explicit colocations with group members
- scheduler: avoid fencing a pending node without a name
- scheduler: properly evaluate rules in action meta-attributes
- scheduler: properly sort rule-based blocks when overwriting values
- tools:
crm_resource --wait
will now wait if any actions are pending (previously it would wait only if new actions were planned) - tools:
crm_verify --output-as=xml
now includes detailed messages - tools: avoid showing pending nodes as having "<3.15.1" feature set in
crm_mon
- tools: fix display of clone descriptions
- tools:
crm_resource
now reports an error rather than timing out when trying to restart an unmanaged resource - tools:
crm_resource
now properly detects which promoted role name to use in ban and move constraints
Public API changes since Pacemaker-2.1.6 (all API/ABI backward-compatible)
- libcib: cib_t now supports transactions via new cib_api_operations_t methods, new cib_transaction value in enum cib_call_options, and new cib_t transaction and user members
- libcib: cib_t now supports setting the ACL user for methods via new cib_api_operations_t set_user() method
- libcib: deprecate cib_api_operations_t methods inputfd(), noop(), quit(), set_op_callback(), and signon_raw()
- libcib: deprecate cib_call_options values cib_mixed_update, cib_scope_local, and cib_zero_copy
- libcib: deprecate cib_t op_callback member
- libcrmcluster: deprecate set_uuid()
- libcrmcluster: send_cluster_message()'s data argument is const
- libcrmcommon: add enum pcmk_rc_e values pcmk_rc_compression, pcmk_rc_ns_resolution, and pcmk_rc_no_transaction
- libcrmcommon,libpe_rules,libpe_status: many APIs have been moved from libpe_rules and libpe_status to libcrmcommon, sometimes with new names (deprecating the old ones), as described below
- libcrmcommon: add (and deprecate) PCMK_DEFAULT_METADATA_TIMEOUT_MS defined constant
- libcrmcommon: add enum pcmk_rsc_flags
- libcrmcommon: add enum pcmk_scheduler_flags
- libcrmcommon: add pcmk_action_added_to_graph
- libcrmcommon: add pcmk_action_always_in_graph
- libcrmcommon: add pcmk_action_attrs_evaluated
- libcrmcommon: add PCMK_ACTION_CANCEL string constant
- libcrmcommon: add PCMK_ACTION_CLEAR_FAILCOUNT string constant
- libcrmcommon: add PCMK_ACTION_CLONE_ONE_OR_MORE string constant
- libcrmcommon: add PCMK_ACTION_DELETE string constant
- libcrmcommon: add PCMK_ACTION_DEMOTE string constant
- libcrmcommon: add pcmk_action_demote to enum action_tasks
- libcrmcommon: add PCMK_ACTION_DEMOTED string constant
- libcrmcommon: add pcmk_action_demoted to enum action_tasks
- libcrmcommon: add pcmk_action_detect_loop
- libcrmcommon: add PCMK_ACTION_DO_SHUTDOWN string constant
- libcrmcommon: add pcmk_action_fence to enum action_tasks
- libcrmcommon: add pcmk_action_inputs_deduplicated
- libcrmcommon: add PCMK_ACTION_LIST string constant
- libcrmcommon: add PCMK_ACTION_LOAD_STOPPED string constant
- libcrmcommon: add PCMK_ACTION_LRM_DELETE string constant
- libcrmcommon: add PCMK_ACTION_MAINTENANCE_NODES string constant
- libcrmcommon: add PCMK_ACTION_META_DATA string constant
- libcrmcommon: add pcmk_action_migratable
- libcrmcommon: add PCMK_ACTION_MIGRATE_FROM string constant
- libcrmcommon: add PCMK_ACTION_MIGRATE_TO string constant
- libcrmcommon: add pcmk_action_migration_abort
- libcrmcommon: add pcmk_action_min_runnable
- libcrmcommon: add PCMK_ACTION_MONITOR string constant
- libcrmcommon: add pcmk_action_monitor to enum action_tasks
- libcrmcommon: add PCMK_ACTION_NOTIFIED string constant
- libcrmcommon: add pcmk_action_notified to enum action_tasks
- libcrmcommon: add PCMK_ACTION_NOTIFY string constant
- libcrmcommon: add pcmk_action_notify to enum action_tasks
- libcrmcommon: add PCMK_ACTION_OFF string constant
- libcrmcommon: add PCMK_ACTION_ON string constant
- libcrmcommon: add PCMK_ACTION_ONE_OR_MORE string constant
- libcrmcommon: add pcmk_action_on_dc
- libcrmcommon: add pcmk_action_optional
- libcrmcommon: add PCMK_ACTION_PROMOTE string constant
- libcrmcommon: add pcmk_action_promote to enum action_tasks
- libcrmcommon: add PCMK_ACTION_PROMOTED string constant
- libcrmcommon: add pcmk_action_promoted to enum action_tasks
- libcrmcommon: add pcmk_action_pseudo
- libcrmcommon: add PCMK_ACTION_REBOOT string constant
- libcrmcommon: add PCMK_ACTION_RELOAD string constant
- libcrmcommon: add PCMK_ACTION_RELOAD_AGENT string constant
- libcrmcommon: add pcmk_action_reschedule
- libcrmcommon: add pcmk_action_runnable
- libcrmcommon: add PCMK_ACTION_RUNNING string constant
- libcrmcommon: add pcmk_action_shutdown to enum action_tasks
- libcrmcommon: add PCMK_ACTION_START string constant
- libcrmcommon: add pcmk_action_start to enum action_tasks
- libcrmcommon: add pcmk_action_started to enum action_tasks
- libcrmcommon: add PCMK_ACTION_STATUS string constant
- libcrmcommon: add PCMK_ACTION_STONITH string constant
- libcrmcommon: add PCMK_ACTION_STOP string constant
- libcrmcommon: add pcmk_action_stop to enum action_tasks
- libcrmcommon: add PCMK_ACTION_STOPPED string constant
- libcrmcommon: add pcmk_action_stopped to enum action_tasks
- libcrmcommon: add pcmk_action_t type
- libcrmcommon: add pcmk_action_unspecified to enum action_tasks
- libcrmcommon: add PCMK_ACTION_VALIDATE_ALL string constant
- libcrmcommon: add pcmk_assignment_methods_t type
- libcrmcommon: add PCMK_DEFAULT_ACTION_TIMEOUT_MS defined constant
- libcrmcommon: add pcmk_log_xml_as()
- libcrmcommon: add PCMK_META_CLONE_MAX string constant
- libcrmcommon: add PCMK_META_CLONE_MIN string constant
- libcrmcommon: add PCMK_META_CLONE_NODE_MAX string constant
- libcrmcommon: add PCMK_META_FAILURE_TIMEOUT string constant
- libcrmcommon: add PCMK_META_MIGRATION_THRESHOLD string constant
- libcrmcommon: add PCMK_META_PROMOTED_MAX string constant
- libcrmcommon: add PCMK_META_PROMOTED_NODE_MAX string constant
- libcrmcommon: add pcmk_multiply_active_block to enum rsc_recovery_type
- libcrmcommon: add pcmk_multiply_active_restart to enum rsc_recovery_type
- libcrmcommon: add pcmk_multiply_active_stop to enum rsc_recovery_type
- libcrmcommon: add pcmk_multiply_active_unexpected to enum rsc_recovery_type
- libcrmcommon: add PCMK_NODE_ATTR_TERMINATE string constant
- libcrmcommon: add pcmk_node_t type
- libcrmcommon: add pcmk_node_variant_cluster
- libcrmcommon: add pcmk_node_variant_remote
- libcrmcommon: add pcmk_no_action_flags
- libcrmcommon: add pcmk_no_quorum_demote
- libcrmcommon: add pcmk_no_quorum_fence
- libcrmcommon: add pcmk_no_quorum_freeze
- libcrmcommon: add pcmk_no_quorum_ignore
- libcrmcommon: add pcmk_no_quorum_stop
- libcrmcommon: add pcmk_on_fail_ban to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_block to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_demote to enum action_fail_response
- libcrmcommon: add pcmk_o...
Pacemaker 2.1.7 - Release Candidate 4
-
4 commits with 1 file changed, 2 insertions(+), 1 deletion(-)
-
Fixes since Pacemaker-2.1.7-rc3
- attrd: Deletion of transient attributes works again (regression introduced in 2.1.7-rc1)
Pacemaker 2.1.7 - Release Candidate 3
-
10 commits with 9 files changed, 72 insertions(+), 19 deletions(-)
-
Fixes since Pacemaker-2.1.7-rc2
- agents: handle dampening parameter consistently and correctly
- scheduler: update recheck time for node-pending-timeout
- tools: fix XML output regression introduced in 2.1.7-rc1
Pacemaker 2.1.7 - Release Candidate 2
- 26 commits with 14 files changed, 119 insertions(+), 46 deletions(-)
Features added since Pacemaker-2.1.7-rc1
- Default of new node-pending-timeout option has been changed to 0 to preserve previous behavior
Fixes since Pacemaker-2.1.7-rc1
- build: Allow building with libxml2 2.12.0 and greater
- tools: crm_resource --wait will now wait if any actions are pending (previously it would wait only if new actions were planned)
- tools: crm_verify --output-as=xml now includes detailed messages
Pacemaker 2.1.7 - Release Candidate 1
- 1345 commits with 358 files changed, 23622 insertions(+), 17197 deletions(-)
Features added since Pacemaker-2.1.6
- CIB: deprecate "ordering" attribute of "resource_set"
- CIB: new cluster option "node-pending-timeout" (defaulting to 2 hours - changed to 0 to preserve previous behavior in rc2) to fence nodes that do not join Pacemaker's controller group within this much time after joining the cluster
- controller: PCMK_node_start_state now works with Pacemaker Remote nodes
- crm_verify: add --quiet option (currently same as default behavior)
- tools: crm_node supports standard --output-as/--output-to arguments
- tests: CTSlab.py was renamed to cts-lab
Fixes since Pacemaker-2.1.6
- logging: restore ability to enable XML trace logs by file and function (regression introduced in 2.1.6)
- scheduler: avoid double free with disabled recurring actions (regression introduced in 2.1.5)
- tools: consider dampening argument when setting values with attrd_updater (regression introduced in 2.1.5)
- tools: wait for reply from crm_node -R (regression introduced in 2.0.5)
- CIB: be more strict about ignoring colocation elements without an ID
- controller: do not check whether watchdog fencing is enabled if "stonith-watchdog-timeout" is not configured
- controller: don't try to execute agent action at shutdown
- controller: avoid race condition when updating node state during join
- controller: correctly determine state of a fenced node without a name
- controller: wait a second between fencer connection attempts
- libpacemaker: avoid shuffling clone instances unnecessarily
- libpacemaker: get bundle container's promotion score from correct node
- libpacemaker: role-based colocations now works with bundles
- libpacemaker: clone-node-max now works with cloned groups
- scheduler: compare anti-colocation dependent negative preferences against stickiness
- scheduler: consider explicit colocations with group members
- scheduler: avoid fencing a pending node without a name
- scheduler: properly evaluate rules in action meta-attributes
- scheduler: properly sort rule-based blocks when overwriting values
- tools: avoid showing pending nodes as having "<3.15.1" feature set in crm_mon
- tools: fix display of clone descriptions
- tools: crm_resource now reports an error rather than time out when trying to restart an unmanaged resource
- tools: crm_resource now properly detects which promoted role name to use in ban and move constraints
Public API changes since Pacemaker-2.1.6 (fully backward-compatible)
- libcib: cib_t now supports transactions via new cib_api_operations_t methods, new cib_transaction value in enum cib_call_options, and new cib_t transaction and user members
- libcib: cib_t now supports setting the ACL user for methods via new cib_api_operations_t set_user() method
- libcib: deprecate cib_api_operations_t methods inputfd(), noop(), quit(), set_op_callback(), and signon_raw()
- libcib: deprecate cib_call_options values cib_mixed_update, cib_scope_local, and cib_zero_copy
- libcib: deprecate cib_t op_callback member
- libcrmcluster: deprecate set_uuid()
- libcrmcluster: send_cluster_message()'s data argument is const
- libcrmcommon: add enum pcmk_rc_e values pcmk_rc_compression, pcmk_rc_ns_resolution, and pcmk_rc_no_transaction
- libcrmcommon,libpe_rules,libpe_status: many APIs have been moved from libpe_rules and libpe_status to libcrmcommon, sometimes with new names (deprecating the old ones), as described below
- libcrmcommon: add (and deprecate) PCMK_DEFAULT_METADATA_TIMEOUT_MS defined constant
- libcrmcommon: add enum pcmk_rsc_flags
- libcrmcommon: add enum pcmk_scheduler_flags
- libcrmcommon: add pcmk_action_added_to_graph
- libcrmcommon: add pcmk_action_always_in_graph
- libcrmcommon: add pcmk_action_attrs_evaluated
- libcrmcommon: add PCMK_ACTION_CANCEL string constant
- libcrmcommon: add PCMK_ACTION_CLEAR_FAILCOUNT string constant
- libcrmcommon: add PCMK_ACTION_CLONE_ONE_OR_MORE string constant
- libcrmcommon: add PCMK_ACTION_DELETE string constant
- libcrmcommon: add PCMK_ACTION_DEMOTE string constant
- libcrmcommon: add pcmk_action_demote to enum action_tasks
- libcrmcommon: add PCMK_ACTION_DEMOTED string constant
- libcrmcommon: add pcmk_action_demoted to enum action_tasks
- libcrmcommon: add pcmk_action_detect_loop
- libcrmcommon: add PCMK_ACTION_DO_SHUTDOWN string constant
- libcrmcommon: add pcmk_action_fence to enum action_tasks
- libcrmcommon: add pcmk_action_inputs_deduplicated
- libcrmcommon: add PCMK_ACTION_LIST string constant
- libcrmcommon: add PCMK_ACTION_LOAD_STOPPED string constant
- libcrmcommon: add PCMK_ACTION_LRM_DELETE string constant
- libcrmcommon: add PCMK_ACTION_MAINTENANCE_NODES string constant
- libcrmcommon: add PCMK_ACTION_META_DATA string constant
- libcrmcommon: add pcmk_action_migratable
- libcrmcommon: add PCMK_ACTION_MIGRATE_FROM string constant
- libcrmcommon: add PCMK_ACTION_MIGRATE_TO string constant
- libcrmcommon: add pcmk_action_migration_abort
- libcrmcommon: add pcmk_action_min_runnable
- libcrmcommon: add PCMK_ACTION_MONITOR string constant
- libcrmcommon: add pcmk_action_monitor to enum action_tasks
- libcrmcommon: add PCMK_ACTION_NOTIFIED string constant
- libcrmcommon: add pcmk_action_notified to enum action_tasks
- libcrmcommon: add PCMK_ACTION_NOTIFY string constant
- libcrmcommon: add pcmk_action_notify to enum action_tasks
- libcrmcommon: add PCMK_ACTION_OFF string constant
- libcrmcommon: add PCMK_ACTION_ON string constant
- libcrmcommon: add PCMK_ACTION_ONE_OR_MORE string constant
- libcrmcommon: add pcmk_action_on_dc
- libcrmcommon: add pcmk_action_optional
- libcrmcommon: add PCMK_ACTION_PROMOTE string constant
- libcrmcommon: add pcmk_action_promote to enum action_tasks
- libcrmcommon: add PCMK_ACTION_PROMOTED string constant
- libcrmcommon: add pcmk_action_promoted to enum action_tasks
- libcrmcommon: add pcmk_action_pseudo
- libcrmcommon: add PCMK_ACTION_REBOOT string constant
- libcrmcommon: add PCMK_ACTION_RELOAD string constant
- libcrmcommon: add PCMK_ACTION_RELOAD_AGENT string constant
- libcrmcommon: add pcmk_action_reschedule
- libcrmcommon: add pcmk_action_runnable
- libcrmcommon: add PCMK_ACTION_RUNNING string constant
- libcrmcommon: add pcmk_action_shutdown to enum action_tasks
- libcrmcommon: add PCMK_ACTION_START string constant
- libcrmcommon: add pcmk_action_start to enum action_tasks
- libcrmcommon: add pcmk_action_started to enum action_tasks
- libcrmcommon: add PCMK_ACTION_STATUS string constant
- libcrmcommon: add PCMK_ACTION_STONITH string constant
- libcrmcommon: add PCMK_ACTION_STOP string constant
- libcrmcommon: add pcmk_action_stop to enum action_tasks
- libcrmcommon: add PCMK_ACTION_STOPPED string constant
- libcrmcommon: add pcmk_action_stopped to enum action_tasks
- libcrmcommon: add pcmk_action_t type
- libcrmcommon: add pcmk_action_unspecified to enum action_tasks
- libcrmcommon: add PCMK_ACTION_VALIDATE_ALL string constant
- libcrmcommon: add pcmk_assignment_methods_t type
- libcrmcommon: add PCMK_DEFAULT_ACTION_TIMEOUT_MS defined constant
- libcrmcommon: add pcmk_log_xml_as()
- libcrmcommon: add PCMK_META_CLONE_MAX string constant
- libcrmcommon: add PCMK_META_CLONE_MIN string constant
- libcrmcommon: add PCMK_META_CLONE_NODE_MAX string constant
- libcrmcommon: add PCMK_META_FAILURE_TIMEOUT string constant
- libcrmcommon: add PCMK_META_MIGRATION_THRESHOLD string constant
- libcrmcommon: add PCMK_META_PROMOTED_MAX string constant
- libcrmcommon: add PCMK_META_PROMOTED_NODE_MAX string constant
- libcrmcommon: add pcmk_multiply_active_block to enum rsc_recovery_type
- libcrmcommon: add pcmk_multiply_active_restart to enum rsc_recovery_type
- libcrmcommon: add pcmk_multiply_active_stop to enum rsc_recovery_type
- libcrmcommon: add pcmk_multiply_active_unexpected to enum rsc_recovery_type
- libcrmcommon: add PCMK_NODE_ATTR_TERMINATE string constant
- libcrmcommon: add pcmk_node_t type
- libcrmcommon: add pcmk_node_variant_cluster
- libcrmcommon: add pcmk_node_variant_remote
- libcrmcommon: add pcmk_no_action_flags
- libcrmcommon: add pcmk_no_quorum_demote
- libcrmcommon: add pcmk_no_quorum_fence
- libcrmcommon: add pcmk_no_quorum_freeze
- libcrmcommon: add pcmk_no_quorum_ignore
- libcrmcommon: add pcmk_no_quorum_stop
- libcrmcommon: add pcmk_on_fail_ban to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_block to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_demote to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_fence_node to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_ignore to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_reset_remote to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_restart to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_restart_container to enum action_fail_response
- libcrmcommon: add pcmk_on_fail_standby_node to action_fail_response
- libcrmcommon: add pcmk_on_fail_stop to enum action_fail_response
- libcrmcommon: add pcmk_probe_always to enum pe_discover_e
- libcrmcommon: add pcmk_probe_exclusive to enum pe_discover_e
- libcrmcommon: add pcmk_probe_never to enum pe_discover_e
- libcrmcommon: add pcmk_requires_fencing to enum rsc_start_requirement
- libcrmcommon: add pcmk_requires_nothing to enum rsc_start_requirement
- libcrmcommon: add pcmk_requires_quorum to enum rsc_start_requirement
- libcrmcommon: add pcmk_resource_t type
- libcrmcommon: add pcmk_role_promoted to enum rsc_role_e
- libcrmcommon: add pcmk_role_started to enum rsc_role_e
- libcrmcommon: add p...
Pacemaker 2.1.6 - Final
Release info
- Wed May 24 2023 Ken Gaillot kgaillot@redhat.com Pacemaker-2.1.6
- 1124 commits with 402 files changed, 25220 insertions(+), 14751 deletions(-)
Known regressions introduced in this release
- The CIB may no longer use
validate-with="pacemaker-next"
(fixed in 2.1.8) - Using
PCMK_trace_files
andPCMK_trace_functions
no longer works for XML trace logs (fixed in 2.1.7)
Features added since Pacemaker-2.1.5
- CIB: deprecate "moon" in date_spec elements in rules
- CIB: deprecate support for Nagios resources
- CIB: utilization attributes may be set as transient
- CIB: alerts and alert recipients support an "enabled" meta-attribute
- All daemons support --output-as/--output-to options including XML output with interactive options
- tools: attrd_updater supports --wait parameter that can be set to "no" (return immediately after submitting request, which is the default and previous behavior), "local" (return after the new value has taken effect on the local node), or "cluster" (return after new value has taken effect on all nodes)
- tools: attrd_updater supports -z/--utilization to modify utilization attributes
- tools: attrd_updater supports --pattern to affect all attributes matching a given pattern
- tools: crm_attribute supports --pattern with permanent node attributes (in addition to previous support for transient attributes) + tools: crm_mon displays resource descriptions if --show-description or --show-detail is given
- tools: crm_mon shows maintenance mode when enabled per-resource
- tools: crm_mon --interval can be used to update XML and text output (in addition to previous support for HTML)
- tools: crm_mon fencing history includes microseconds in timestamps
- tools: crm_mon shows which node it was run on
- tools: crm_mon shows whether Pacemaker or Pacemaker Remote is running or shutting down
- tools: deprecate crm_mon --simple-status
- tools: crm_resource --element option can be used with --get-parameter, --set-parameter, and --delete-parameter to modify resource properties such as class, provider, type, and description
- tools: crm_resource --list shows resource descriptions better (including when --output-as=xml is used)
- tools: crm_shadow supports standard --output-as/--output-to arguments
Fixes since Pacemaker-2.1.5
- pacemakerd: -S should wait for cluster to shut down before returning (regression introduced in 2.1.1)
- Pacemaker Remote: remote nodes wait for all-clear from cluster before shutting down (regression introduced in 2.1.5)
- tools: attrd_updater --query without --node shows attributes from all nodes instead of local node (regression introduced in 2.1.5)
- pacemaker-attrd: Preserve a Pacemaker Remote node's transient attributes if its connection to the cluster is lost but reconnects
- CIB manager: successful CIB schema upgrade always forces a write
- controller: avoid election storm when joining node has CIB newer than DC can accept
- controller: avoid election storm due to incompatible CIB
- controller: avoid use-after-free when disconnecting proxy IPCs during shutdown
- controller: avoid double-incrementing failcount for simulated failures
- controller: avoid reprobing remote nodes when target is a cluster node
- controller: delay join finalization if a transition is in progress
- controller: initial fencing timeout includes any priority-fencing-delay
- controller: shutdown gracefully if scheduler connection is interrupted during shutdown
- fencer: avoid crash during shutdown when action is pending
- fencer: calculate fencing timeout correctly when watchdog is used with topology
- fencer: apply priority-fencing-delay only to first device tried
- fencer: total and per-device fencing timeouts include any priority-fencing-delay and pcmk_delay_base
- scheduler: fix a number of corner cases with colocations, including preventing a resource from starting if it has a mandatory colocation with a group whose start is blocked, preventing optional anti-colocation from overriding infinite stickiness, and correctly considering a group's colocation dependents when the group is itself colocated with a clone
- scheduler: honor as many mandatory colocations as possible before considering any optional ones
- scheduler: ensure earlier group member starts occur after later member stops
- scheduler: handle orderings with bundles more correctly
- scheduler: ensure expired results never affect resource state
- scheduler: handle cleaned migrate_from history correctly
- scheduler: prevent pending monitor of one clone instance from causing unexpected stop of other instances
- scheduler: prevent inactive clone instances from starting if probe is unrunnable on any node
- agents: SysInfo calculates cpu_load correctly
- tools: cibadmin --scope accepts status
- tools: crm_attribute -p "" works same as -p when called from resource agent
- tools: crm_attribute recognizes "-INFINITY" as value instead of options
- tools: crm_mon avoids displaying recurring monitors as pending if first attempt fails
- tools: crm_mon --daemonize shows disconnected message when CIB connection is lost instead of continuing to display last known state
- tools: crm_mon avoids crash when built without curses library support
- tools: crm_mon supports --output-as=none correctly
- tools: crm_resource --ban or --move works with single-replica bundles
- tools: crm_shadow --commit now works with CIB_file
- tools: crm_simulate failure injection avoids crash if node name is unknown
Public API changes since Pacemaker-2.1.5
- Python: New "pacemaker" Python module (packaged as python3-pacemaker in RPMs built with "make rpm") contains supported public API with BuildOptions and ExitStatus classes
- libcib: add client_id() method member to cib_api_operations_t
- libcib: deprecate cib_database
- libcib: deprecate cib_quorum_override
- libcib: deprecate the cib_api_operations_t:update() method
- libcrmcluster: add pcmk_cluster_new()
- libcrmcluster: add crm_join_nack_quiet
- libcrmcluster: add pcmk_cluster_free()
- libcrmcluster: node argument to send_cluster_message() is now const
- libcrmcluster: node argument to send_cluster_text() is now const
- libcrmcommon: add crm_time_usecs
- libcrmcommon: add PCMK_META_ENABLED
- libcrmcommon: add pcmk_pacemakerd_state_remote
- libcrmcommon: add pcmk_rc_bad_xml_patch
- libcrmcommon: add pcmk_rc_bad_input
- libcrmcommon: add pcmk_rc_disabled
- libcrmcommon: deprecate add_xml_nocopy()
- libcrmcommon: deprecate log_data_element()
- libcrmcommon: deprecate PCMK_RESOURCE_CLASS_NAGIOS
- libcrmcommon: deprecate PCMK_RESOURCE_CLASS_UPSTART
- libcrmcommon: deprecate XML_ATTR_UUID
- libcrmcommon: deprecate XML_CIB_ATTR_REPLACE
- libcrmcommon: deprecate xml_log_changes()
- libcrmcommon: deprecate xml_log_options enum
- libcrmcommon: deprecate xml_log_patchset()
- libcrmcommon: argument to pcmk_xe_is_probe() is now const
- libcrmcommon: argument to pcmk_xe_mask_probe_failure() is now const
- libcrmcommon: patchset argument of xml_log_patchset() is now const
- libcrmcommon: rsc_op_expected_rc() argument is now const
- libcrmcommon: second argument to copy_in_properties() is now const
- libcrmcommon: xml argument of xml_log_changes() is now const
- libcrmservice: deprecate enum nagios_exitcode
- libpacemaker: add pcmk_query_node_info()
- libpacemaker: add pcmk_query_node_name()
- libpacemaker: multiple arguments to pcmk_simulate() are now const
- libpacemaker: node argument to pcmk_resource_digests() is now const
- libpacemaker: node_types argument to pcmk_list_nodes() is now const
- libpacemaker: pcmk_controller_status() node name arg is now const
- libpe_rules: last argument to pe_expand_re_matches() is now const
- libpe_rules: rule_data argument to pe_eval_nvpairs() is now const
- libpe_rules: second argument to pe_eval_expr() and pe_eval_subexpr() is now const
- libpe_rules: second argument to pe_eval_rules() is now const
- libpe_rules: second argument to pe_unpack_nvpairs() is now const
- libpe_status: add pe_rsc_detect_loop
- libpe_status: add pe_rsc_replica_container
- libpe_status: deprecate fixed member of pe_node_t
- libpe_status: argument to pe_rsc_is_bundled() is now const
- libpe_status: argument to rsc_printable_id() is now const
- libpe_status: first argument to calculate_active_ops() is now const
- libpe_status: first argument to pe_find_node() is now const + libpe_status: first argument to pe_find_node_any() is now const
- libpe_status: first argument to pe_find_node_id() is now const
- libpe_status: first argument to resource_object_functions_t:is_filtered() is now const
Pacemaker 2.1.6 - Release Candidate 2
Features added since Pacemaker-2.1.6-rc1
- scheduler: deprecate "moon" in date_spec elements in rules
- scheduler: deprecate support for Nagios resources
Fixes since Pacemaker-2.1.6-rc1
- pacemakerd: -S should wait for cluster to shut down before returning (regression introduced in 2.1.1)
- pacemaker-attrd: Preserve a Pacemaker Remote node's transient attributes if its connection to the cluster is lost but reconnects
- controller: initial fencing timeout includes any priority-fencing-delay
- fencer: apply priority-fencing-delay only to first device tried
- fencer: total and per-device fencing timeouts include any priority-fencing-delay and pcmk_delay_base
- scheduler: honor as many mandatory colocations as possible before considering any optional ones
Public API changes since Pacemaker-2.1.6-rc1
- libcrmcommon: deprecate PCMK_RESOURCE_CLASS_NAGIOS
- libcrmcommon: deprecate PCMK_RESOURCE_CLASS_UPSTART
- libcrmservice: deprecate enum nagios_exitcode
Pacemaker 2.1.6 - Release Candidate 1
Features added since Pacemaker-2.1.5
- CIB: utilization attributes may be set as transient
- CIB: alerts and alert recipients support an "enabled" meta-attribute
- All daemons support --output-as/--output-to options including XML output with interactive options
- tools: attrd_updater supports --wait parameter that can be set to "no" (return immediately after submitting request, which is the default and previous behavior), "local" (return after the new value has taken effect on the local node), or "cluster" (return after new value has taken effect on all nodes)
- tools: attrd_updater supports -z/--utilization to modify utilization attributes
- tools: attrd_updater supports --pattern to affect all attributes matching a given pattern
- tools: crm_attribute supports --pattern with permanent node attributes (in addition to previous support for transient attributes)
- tools: crm_mon displays resource descriptions if --show-description or --show-detail is given
- tools: crm_mon shows maintenance mode when enabled per-resource
- tools: crm_mon --interval can be used to update XML and text output (in addition to previous support for HTML)
- tools: crm_mon fencing history includes microseconds in timestamps
- tools: crm_mon shows which node it was run on
- tools: crm_mon shows whether Pacemaker or Pacemaker Remote is running or shutting down
- tools: deprecate crm_mon --simple-status
- tools: crm_resource --element option can be used with --get-parameter, --set-parameter, and --delete-parameter to modify resource properties such as class, provider, type, and description
- tools: crm_resource --list shows resource descriptions better (including when --output-as=xml is used)
- tools: crm_shadow supports standard --output-as/--output-to arguments
Fixes since Pacemaker-2.1.5
- Pacemaker Remote: remote nodes wait for all-clear from cluster before shutting down (regression introduced in 2.1.5)
- tools: attrd_updater --query without --node shows attributes from all nodes instead of local node (regression introduced in 2.1.5)
- CIB manager: successful CIB schema upgrade always forces a write
- controller: avoid election storm when joining node has CIB newer than DC can accept
- controller: avoid election storm due to incompatible CIB
- controller: avoid use-after-free when disconnecting proxy IPCs during shutdown
- controller: delay join finalization if a transition is in progress
- controller: avoid double-incrementing failcount for simulated failures
- controller: avoid reprobing remote nodes when target is a cluster node
- controller: shutdown gracefully if scheduler connection is interrupted during shutdown
- fencer: avoid crash during shutdown when action is pending
- fencer: calculate fencing timeout correctly when watchdog is used with topology
- scheduler: fix a number of corner cases with colocations, including preventing a resource from starting if it has a mandatory colocation with a group whose start is blocked, preventing optional anti-colocation from overriding infinite stickiness, and correctly considering a group's colocation dependents when the group is itself colocated with a clone
- scheduler: handle orderings with bundles more correctly
- scheduler: ensure expired results never affect resource state
- scheduler: handle cleaned migrate_from history correctly
- scheduler: prevent pending monitor of one clone instance from causing unexpected stop of other instances
- scheduler: prevent inactive clone instances from starting if probe is unrunnable on any node
- agents: SysInfo calculates cpu_load correctly
- tools: cibadmin --scope accepts status
- tools: crm_attribute -p "" works same as -p when called from resource agent
- tools: crm_attribute recognizes "-INFINITY" as value instead of options
- tools: crm_mon avoids displaying recurring monitors as pending if first attempt fails
- tools: crm_mon --daemonize shows disconnected message when CIB connection is lost instead of continuing to display last known state
- tools: crm_mon avoids crash when built without curses library support
- tools: crm_mon supports --output-as=none correctly
- tools: crm_resource --ban or --move works with single-replica bundles
- tools: crm_shadow --commit now works with CIB_file
- tools: crm_simulate failure injection avoids crash if node name is unknown
Public API changes since Pacemaker-2.1.5
- Python: New "pacemaker" Python module, packaged as python3-pacemaker in RPMs built with "make rpm", contains supported public API with BuildOptions and ExitStatus classes
- libcrmcluster: add crm_join_nack_quiet
- libcib: add client_id() method member to cib_api_operations_t
- libcib: deprecate cib_database
- libcib: deprecate cib_quorum_override
- libcib: deprecate the cib_api_operations_t:update() method
- libcrmcluster: add pcmk_cluster_new()
- libcrmcluster: add pcmk_cluster_free()
- libcrmcluster: node argument to send_cluster_message() is now const
- libcrmcluster: node argument to send_cluster_text() is now const
- libcrmcommon: add crm_time_usecs
- libcrmcommon: add PCMK_META_ENABLED
- libcrmcommon: add pcmk_pacemakerd_state_remote
- libpacemaker: add pcmk_query_node_info()
- libpacemaker: add pcmk_query_node_name()
- libcrmcommon: add pcmk_rc_bad_xml_patch
- libcrmcommon: add pcmk_rc_bad_input
- libcrmcommon: add pcmk_rc_disabled
- libcrmcommon: deprecate add_xml_nocopy()
- libcrmcommon: deprecate log_data_element()
- libcrmcommon: deprecate XML_ATTR_UUID
- libcrmcommon: deprecate XML_CIB_ATTR_REPLACE
- libcrmcommon: deprecate xml_log_changes()
- libcrmcommon: deprecate xml_log_options enum
- libcrmcommon: deprecate xml_log_patchset()
- libcrmcommon: argument to pcmk_xe_is_probe() is now const
- libcrmcommon: argument to pcmk_xe_mask_probe_failure() is now const
- libcrmcommon: patchset argument of xml_log_patchset() is now const
- libcrmcommon: rsc_op_expected_rc() argument is now const
- libcrmcommon: second argument to copy_in_properties() is now const
- libcrmcommon: xml argument of xml_log_changes() is now const
- libpacemaker: multiple arguments to pcmk_simulate() are now const
- libpacemaker: node argument to pcmk_resource_digests() is now const
- libpacemaker: node_types argument to pcmk_list_nodes() is now const
- libpacemaker: pcmk_controller_status() node name arg is now const
- libpe_rules: last argument to pe_expand_re_matches() is now const
- libpe_rules: rule_data argument to pe_eval_nvpairs() is now const
- libpe_rules: second argument to pe_eval_expr() and pe_eval_subexpr() is now const
- libpe_rules: second argument to pe_eval_rules() is now const
- libpe_rules: second argument to pe_unpack_nvpairs() is now const
- libpe_status: add pe_rsc_detect_loop
- libpe_status: add pe_rsc_replica_container
- libpe_status: deprecate fixed member of pe_node_t
- libpe_status: argument to pe_rsc_is_bundled() is now const
- libpe_status: argument to rsc_printable_id() is now const
- libpe_status: first argument to calculate_active_ops() is now const
- libpe_status: first argument to pe_find_node() is now const
- libpe_status: first argument to pe_find_node_any() is now const
- libpe_status: first argument to pe_find_node_id() is now const
- libpe_status: first argument to resource_object_functions_t:is_filtered() is now const