* Thu Aug 14 2025 Xin Liang <XLiang@suse.com>
- Release 5.0.0
- Fix: log: missing LF after a progress bar (#1886)
- Dev: sbd: Use SBDUtils.get_sbd_device_from_config for reliable diskless SBD detection
- Dev: sbd: Add with_sbd parameter for the case when sbd is not active
- Dev: sbd: Restart cluster after configured sbd and adjusted properties
- Fix: sbd: Ensure stonith-watchdog-timeout is >= 2 * SBD_WATCHDOG_TIMEOUT (bsc#1247415)
- Dev: xmlutil: Add is_non_stonith_resource_running() and use for cluster restart checks
- Fix: doc: Add TimeoutFormulas help topic (bsc#1242981)
- Dev: command: Show help topic completion only at root level
- Fix: sbd: should show warning instead of error when unable to restart the cluster automatically after changing configs (bsc#1246956)
- Dev: qdevice: Reload corosync configuration on one node
- Fix: bootstrap: continue qnetd setup when ssh keypair is not found for some cluster nodes (#1850)
- Dev: sbd: Add pcmk_delay_max back to calculate SBD_DELAY_START
- Dev: doc: release crmsh-5.0 document
- Fix: ui_context: should not require root privilege when using subcommand 'help'
- Fix: sbd: Avoid negative value for the property 'stonith-watchdog-timeout' (bsc#1246622)

* Tue Jul 15 2025 Xin Liang <XLiang@suse.com>
- Release 5.0.0 rc2
- Dev: migration: allow to run migration locally (jsc#PED-8252)
- Dev: Remove unused code
- Dev: utils: Validate if local node is a cluster member on peer node's view
- Dev: ui_cluster: Enhance membership validation for `cluster run` command
- Dev: corosync: Get value from runtime.config prefix and update default token value
- Fix: bootstrap: should fallback to default user when `core.hosts` is not availabe from the seed node (bsc#1245343)
- Fix: bootstrap: Refine qnetd passwordless configuration logic (bsc#1245387)
- Fix: log: Improve function confirm's logic (bsc#1245386)
- Dev: bootstrap: Remove dead node from the cluster
- Dev: Prevent actions when offline nodes are unreachable
- Dev: xmlutil: Address circular import issue
- Dev: bootstrap: Remove user@host item from /root/.config/crm/crm.conf when removing node
- Dev: run-functional-tests: Fetch container's IP address correctly
- Dev: provide a friendly message when passwordless ssh does not work (bsc#1244525)
- Fix: bootstrap: Reload corosync after sync corosync.conf (bsc#1244437)
- Fix: bootstrap: setup_passwordless_with_other_nodes does not update the authorized_keys on localhost (bsc#1244314)
- Dev: cibconfig: Prevent adding Pacemaker remote resources to groups, orders, or colocations
- Fix: report.collect: Detect log existence before using it (bsc#1244515)
- Dev: bootstrap: Improve node removal handling and messaging
- Dev: ui_corosync: Write changes made by `corosync.set` to temporary file first
- Dev: bootstrap: Improve configuration for admin IP
- Dev: bootstrap: do not hide ssh-copy-id outputs in debug mode
- Fix: bootstrap: add sleeps to avoid triggering sshd PerSourcePenalties (bsc#1243141)
- Fix: crash_test: Correctly retrieve fence event information (bsc#1243786)
- Dev: doc: Update help text for `corosync set` command
- Dev: corosync_config_format: Skip comment key
- ui_corosync: Add push reminder after called `corosync set`
- Dev: ui_corosync: Call `corosync -t` to do verification
- Dev: migration: use atomic write to modify corosync.conf on remote nodes (jsc#PED-8252)
- Dev: Dockerfile: Install pacemaker-remote package

* Wed May 21 2025 Xin Liang <XLiang@suse.com>
- Release 5.0.0 rc1
- Dev: Drop scripts and templates which include unsupported RAs (jsc#PED-8924) (#1800)
- Dev: sbd: Remove pcmk_delay_max while cacaulating stonith timeout value (#1740)
- Fix: corosync: Don't set quorum.two_node to 1 if qdevice configured (#1797)
- Dev: ui_cluster: Add firewalld stage to crm cluster init help info (#1796)
- Dev: Refactor code to manage high-availability service in firewalld (#1781)
- Dev: bootstrap: Add high-availability firewalld service on geo arbitrator
- Dev: bootstrap: Apply firewalld changes to both runtime and permanent configurations without reload
- Dev: bootstrap: Manage high-availability service in firewalld (bsc#1242494)
- Dev: qdevice: Enable qnetd port in firewalld
- Dev: bootstrap: Remove codes of configuring ports in firewalld
- Dev: Add high-availability.xml for service of firewalld (bsc#1242494)
- Dev: ui_configure: Add ':' suffix to order kind completer (#1775)
- Dev: main: Ignore crm flag option to get completion (#1753)
- Dev: ui_cluster: Skip stopping cluster if dlm_controld is running in maintenance mode (#1771)
- Dev: ui_cluster: Refactor the `do_restart` function
- Dev: ui_cluster: Skip stopping cluster if dlm_controld is running in maintenance mode
- Dev: migration: add a message about how to upgrade cib schema version (jsc#PED-8252) (#1770)
- Dev: cibconfig: Use VerifyResult to define the return value of sanity check related functions (#1773)
- Dev: bootstrap: use ssh agent by default (#1728)
- Fix: ra: Prevent to add unknown operation (bsc#1236442) (#1679)
- Dev: Refactored node reachability handling in multiple modules (#1765)
- Dev: bash_completion.sh: Add nosort option to disable sorting (#1761)
- Dev: doc: Adjust help of `corosync status` command (#1763)
- Dev: command: Sort the completion results for non-interactive mode
- Dev: ra: Show parameters more clearly (#1733)
- Dev: boostrap: ssh_copy_id should not use keys from ssh-agent (#1663)
- Dev: remove use_ssh_ssh_agent() and always relay SSH_AUTH_SOCK (#1663)
- Dev: bootstrap geo: allow to fallback to keyfile when login with ssh-agent fails (#1663)
- Dev: bootstrap: should pass SSH_AUTH_SOCK when swapping keys (#1633)
- Dev: bootstrap join: implement setup_passwordless_with_other_nodes by merging authorized_keys (#1663)
- Fix: ssh_key: should not use ssh-copy-id -i when using keys from ssh-agent (#1633)
- Dev: bootstrap join: allow to fallback to keyfile when login with ssh-agent fails (#1663)
- Dev: bootstrap init -N: do not raise an error when no ssh key is available (#1663)
- Dev: bootstrap join: do not raise an error when no ssh key is available (#1663)
- Dev: ui_cluster: add `--no-use-ssh-agent` (#1663)
- Dev: utils: Enhance maintenance mode management with detection and type hints (#1760)
- Dev: ra: Refactor the code about how to show parameters
- Dev: ra: Show parameters more clear
- Dev: ui_sbd: Raise TerminateSubCommand if /etc/sysconfig/sbd is not found (#1755)
- Fix: ui_cluster: Return when cluster service on all nodes are already startd (bsc#1241358) (#1746)
- Dev: main: Ignore crm flag options to get completion
- Dev: ui_sbd: Raise utils.TerminateSubCommand if /etc/sysconfig/sbd is not found
- Dev: ui_cluster: Return False when run `crm cluster stop` raise NoSSHError
- Dev: sbd: Leverage maintenance mode when need to restart cluster (#1744)
- Dev: ui_sbd: Improve log info when adjust sbd related timeout
- Dev: doc: Update crm.8.adoc for using -F/--force option for leveraging maintenance mode
- Dev: ui_sbd: Configure crashdump watchdog timeout (#1732)
- Dev: ui_sbd: Show fence_sbd parameter in 'sbd configure show'
- Dev: doc: Update doc/crm.8.adoc to add crashdump option
- Dev: ui_sbd: Add 'crashdump' option for 'sbd purge' command
- Dev: ui_sbd: Refactor the condition for configuring crashdump
- Dev: ui_sbd: Compare crashdump watchdog timeout value if configured
- Dev: ui_sbd: Add warning to emphasize that kdump service is required
- Dev: ui_sbd: Update the re pattern to match the possible arguments
- Dev: ui_configure: Show the changes with diff like format (#1730)
- Dev: ra: Drop legacy codes to fetch ra informations
- Dev: Remove codes that include rhcs term
- Dev: Drop node type normal and ping
- Dev: Drop cluster-glue in multiple places (jsc#PED-8733) (#1712)
- Dev: pre-migration: use a unsupported list instead of supported list (jsc#PED-11808) (#1720)
- Dev: ui_corosync: fix completer for link remove (#1721)
- Dev: pre-migration: add checks for deprecated resource agents (jsc#PED-11808)
- Dev: pre-migration: update the unsupported list
- Dev: pre-migration: check lsb or service resource agents (jsc#PED-11808)
- Dev: ui_resource: Refactor do_trace function (#1709)
- Fix: idmgmt: Replace hashtag('#') with point('.') in id (bsc#1239782) (#1718)
- Dev: doc: Update the default value of <heartbeat_dir> in the documentation
- Dev: cibverify: Print output of crm_verify directly (#1673)
- Dev: bootstrap: Drop /var/lib/heartbeat in source code (jsc#PED-8733)
- Dev: ui_configure: Remove 'ms' sub-command (jsc#PED-8231) (#1663)
- Dev: Replace 'Master/Slave' with 'Promoted/Unpromoted' in multiple files
- Dev: scripts: Use promotable clone instead of ms command
- Dev: ui_configure: Enable -F option for 'configure upgrade' (#1710)
- Dev: doc: Mention that 'configure upgrade' supports -F option
- Dev: migration: implement corosync.conf migration for corosync 3 (jsc#PED-8252) (#1422)
- Drop OCF_1_1_SUPPORT option in crm.conf (jsc#PED-8550) (#1703)
- Dev: utils: Ignore config.core.OCF_1_1_SUPPORT option
- Dev: etc: Drop OCF_1_1_SUPPORT option in crm.conf (jsc#PED-8550)
- Dev: ssh_key: more robust error handling in KeyFileManager (bsc#1239084) (#1706)
- Dev: ui_configure: Improve 'configure upgrade' command (#1701)
- Refactor: migration: extract a function _migrate_totem_interface (jsc#PED-8252)
- Refactor: cibquery: extract a function to get cluster nodes without side effects (jsc#PED-8252)
- Dev: migration: fix incorrect bindnetaddr when migrating a multicast cluster (jsc#PED-8252)
- Fix: migration: IndexError when there is only one interface (jsc#PED-8252)
- Dev: migration: refine the message about unsupported component version (jsc#PED-8252)
- Dev: migration: add a message about corosync.conf.bak (jsc#PED-82582)
- Fix: migration: should not report need migration when the cluster has some non-fatal problems which need manual fix (jsc#PED-8252)
- Dev: migration: no need to check if cluster services is stopped (jsc#PED-8252)
- Dev: migration: add a checker for cib schema version (jsc#PED-8252)
- Dev: migration: split problem level and is_blocker (jsc#PED-8252)
- Dev: migration: check if the cluster is already migrated to SLES 16 (jsc#PED-8252)
- Fix: migration: should not show pre-migration check summary when called with `--fix` (jsc#PED-8252)
- Dev: migration: do not check pacemaker version (jsc#PED-8252)
- Dev: migration: refine message wording (jsc#PED-11808)
- Dev: pre-migration: add summary section to output (jsc#PED-11808)
- Refactor: cibquery: has_primitive_filesystem_ocfs2 to has_primitive_filesystem_with_fstype
- Fix: cibquery: grouped primitives is missing from query results (jsc#PED-11808)
- Doc: ui_cluster: add document for `crm cluster health hawk2|sles16`
- Dev: pre-migration: add message about removing stonith:external/sbd (jsc#PED-11808)
- Fix: ui_cluster: fix do_health usage output
- Dev: pre-migration: add completer for 'crm cluster health sles16' (jsc#PED-11808)
- Dev: pre-migration: do not colorize hostname header (jsc#PED-11808)
- Dev: add pre-migration checks for pacemaker version (jsc#PED-11808)
- Dev: pre-migration: check if ocfs2 is used (jsc#PED-11808)
- Dev: pre-migration: check removed fence agents (jsc#PED-11808)
- Dev: pre-migration: check removed resource agents (jsc#PED-11808)
- Dev: pre-migration: check SAPHanaSR Classic resource agents (jsc#PED-11808)
- Dev: pre-migration: add checks for used corosync features (jsc#PED-11808)
- Dev: migration: copy migrated corosync.conf to remote nodes (jsc#PED-8252)
- Dev: migration: run checks on remote nodes (jsc#PED-8252)
- Dev: prun: create event loop manually
- Dev: ui_cluster: add 'crm cluster health sles [--fix]' (jsc#PED-8252)
- Dev: profiles: set default crypto_hash to sha256 to follow corosync default
- Dev: migration: implement multicast to knet migration (jsc#PED-8252)
- Fix: corosync: use os.env instead of os.getenv for consistency (bsc#1205925)
- Dev: migration: populate node name in corosync node list for knet multilink (jsc#PED-8252)
- Dev: doc: Update the doc of 'configure upgrade' command
- Dev: utils: Add parentheses to if else statements (#1698)
- Change default DLM RA name (#1696)
- Dev: cluster_fs: Use 'dlm-controld-ra' as the default dlm ra name
- Dev: Add error log when cluster services fail to start (#1692)
- Improve `configure schema` command (#1690)
- Dev: doc: Improve documentation for `configure schema` command
- Dev: ui_configure: Get schema statically when cluster is not running
- Dev: schema: Make sure schema changed after setting new schema by `configure schema`
- Dev: ui_cib: crm_shadow reset requires '--force' option
- Fix: ci: test container image build failure in tumbleweed (#1689)
- Dev: doc: Drop the syntax mention of '@<id>:name' in crm.8.adoc
- Dev: Improve options of 'crm status' command (jsc#PED-8231)
- Dev: constants: Drop deprecated 'restart-type' resource option (jsc#PED-8231)
- Dev: Drop unsupported 'moon' in date_spec (jsc#PED-8231)
- Dev: Remove deprecated cibadmin --local option (jsc#PED-8231)
- Dev: crash_test.utils: Drop deprecated 'poweroff' value of 'stonith-action' option (jsc#PED-8231)
- Dev: constants: Drop deprecated "crmd-integration-timeout" and "crmd-finalization-timeout" (jsc#PED-8231)
- Dev: utils: Make change since 'crmd-transition-delay' already renamed to 'transition-delay' (jsc#PED-8231)
- Dev: bootstrap: Drop 'record-pending' operation option (jsc#PED-8231)
- Dev: Add cancel option when confirming to commit for the pending changes (#1686)
- Fix: sbd: Detect if sbd package is missing on peer nodes (#1636)
- Dev: ui_configure: Add completer for 'configure schema' command (#1677)
- Revert "Fix: ui_context: Don't complete for unknown argument" (#1682)
- Dev: Refactor: Introduce custom sort order enable/disable functions
- Dev: Replace "stonith:external/<agent>" to fence_agents in multiple places (jsc#PED-8733) (#1667)
- Fix: bootstrap: Local joining node should be included when merging known_hosts (bsc#1229419) (#1639)
- Dev: bootstrap: Check if core packages like corosync/pacemaker are installed (#1675)
- Fix: report: Check if mounted.ocfs2 command exists before using it (bsc#1236220) (#1669)
- Fix: sbd: Check if fence_sbd command exists before initializing device (bsc#1236184) (#1671)
- Dev: sbd: Remove the 'devices' parameter for fence_sbd agent (#1655)
- Fix: ui_context: crmsh still complete even for unknown command (#1618)
- Dev: bootstrap: Option -N should require option -y (#1656)
- Fix: report: Check corosync.service status before querying quorum status (bsc#1235930) (#1665)
- Fix: bootstrap: Improve sync_files_to_disk function (bsc#1219537) (#1653)
- Dev: ra: Drop legacy code to get metadata of the pacemaker daemons (#1647)
- Dev: help: Support '--help' option for cluster properties (#1643)
- Dev: ui_configure: Print all properties if no property is specified
- Dev: bootstrap: add gfs2 stage functionality (Technical Preview) (#1628)
- Dev: report: Support crm report to collect GFS2 information
- Dev: Rename ocfs2.py as cluster_fs.py
- Revert "Dev: ocfs2: Drop support for configuring ocfs2 (jsc#PED-11038)"
- Dev: utils: Change `get_dc` function as the behavior of `crmadmin -D` changed (#1632)
- Dev: ui_resource: Refine 'do_failcount' function (#1624)
- Collect ~/.config/crm/crm.conf in crm report result (#1622)
- Dev: doc: Add examples for the 'failcount' command
- Dev: report: Handle collect files with the same name
- Dev: report: Add ~/.config/crm/crm.conf to the list of collected files
- Add 'crm sbd' sub-level (jsc#PED-8256) (#1491)
- Dev: ui_sbd: Don't show stonith-watchdog-timeout for disk-based SBD
- Dev: sbd: Delete stonith-watchdog-timeout property when configuring
- Dev: sbd: Remove sbd delay start related diretories when running sbd purge
- Dev: Don't set and show SBD_WATCHDOG_TIMEOUT for disk-based SBD
- Dev: ui_sbd: Adjust output of `sbd status`
- Dev: ui_sbd: Adjust sbd configure subcommand
- Dev: ui_sbd: Print sbd cmdline content in `sbd status` command
- Dev: sbd: Split get_sbd_device_interactive into smaller functions
- Dev: doc: Upadate crm.8.adoc for SBD help text
- Dev: ui_sbd: Replace 'sbd disable' as 'sbd purge'
- Dev: sh: Add get_rc_output_without_input in ClusterShell
- Dev: sbd: Move constants.SHOW_SBD_START_TIMEOUT_CMD to sbd.py
- Dev: ui_sbd: Check if node is reachable when getting the node list
- Dev: ui_sbd: Reuse sbd.SBDManager.restart_cluster_if_possible
- Dev: bootstrap: Add a log info when starting pacemaker.service
- Dev: ui_sbd: Check if the adding device is already initialized
- Dev: ui_sbd: Adjust sbd confiure interface
- Dev: ui_sbd: Replace sbd remove as sbd disable sub-command
- Dev: ui_sbd: Add sbd device sub command
- Fix: ui_context: Don't complete for unknown argument
- Fix: ui_context: Don't complete for unknown command
- Dev: ui_sbd: No need to specify device="" when trying to modify properties under diskless sbd
- Dev: report: Dump output of 'crm sbd configure show' and 'crm sbd status' to the report result
- Dev: Refactor the code to avoid circular import
- Dev: ui_sbd: Refactor do_status method
- Dev: bootstrap: Check if sbd package is installed in the right place
- Dev: ui_sbd: Clean up existing fence_sbd resource before configure diskless SBD
- Dev: ui_sbd: Update regex for parsing SBD device by partlabel
- Dev: ui_sbd: Catch both stderr and stdout for crm resource status
- Dev: ui_sbd: No need to consider static case when calling crm configure show
- Dev: ui_sbd: Add property/sysconfig section header for sbd configure show
- Dev: doc: Add help info for crm sbd sublevel
- Dev: ui_sbd: Add new 'crm sbd' sublevel (jsc#PED-8256)
- Dev: utils: Introduced `detect_duplicate_device_path` function in utils
- Dev: utils: Avoid hardcoding the ssh key type as RSA (#1600)
- Dev: bootstrap: Remove import_ssh_key function
- Dev: ssh_key: Split fetch_public_key_list into two functions
- Dev: bootstrap: Improve shell script in generate_ssh_key_pair_on_remote
- Dev: bootstrap: Reuse AuthorizedKeyManager to add key to authorized_keys
- Dev: bootstrap: Adjust the docstring of configure_ssh_key function
- Dev: bootstrap: Change the parameter name in swap_public_ssh_key function
- Dev: bootstrap: Avoid hardcoding the ssh key type as RSA
- Dev: ssh_key: Avoid hardcoding the ssh key type as RSA
- Dev: bootstrap: more robust implementation for ssh_merge (bsc#1230530) (#1610)
- Fix: log: The report DEBUG log message is not displayed in the log file (#1608)
- Fix: report.utils: Fix the performance issue (bsc#1232821) (#1606)
- Dev: report.utils: For a sequence of archived log files, check the modify time
- Dev: report.utils: Add debug info for the log file types
- Fix: report.collect: Make sure the log is not None before using it (bsc#1232821)
- Dev: add pylint to check ill-formated string literals (#1603)
- Fix: Python 3.12: SyntaxWarning: invalid escape sequence (#1601)
- Dev: bootstrap: Refine remote_auth stage (#1598)
- Fix: scripts: health: failed to extract report when it is compressed in bz2 (#1595)
- Dev: beahve: refine messages in the test runner script
- Dev: test_container: replace iptables with iptables-nft (#1572)
- Fix: hahealth: return fail when report failed (bsc#1231840) (#1589)
- Dev: ocfs2: Drop support for configuring ocfs2 (jsc#PED-11038) (#1574)
- Fix: cibconfig: Disable auto add advise values for operations (bsc#1231386) (#1579)
- Fix: ui_cluster: Stop renaming cluster name when using qdevice (#1573)
- Dev: utils: Check node is reachable by using both ping and ssh (#1563)
- Fix: help: crm help <topic> does not work (#1567) (#1568)
- Fix: report: find_shell should accept hacluster user (bsc#1228899) (#1564)
- Dev: report: do not capture stderr when unarchiving tarballs
- Dev: report: make error messages easier to parse for hawk2 (bsc#1228899)
- Dev: ui_cluster: Change the completer for crm cluster health
- Dev: remove `upgradeutil` and add `crm cluster health hawk2 [--fix]` (bsc#1228899) (#1558)
- Fix: command: `do_help` does not work as a 3rd level subcommand (#1560)
- Dev: report: add a reminder to use `crm cluster health` (bsc#1228899)
- Dev: ui_cluster: add a reminder to use "crm cluster init/join ssh" to initialize ssh (bsc#1228899)
- Dev: scripts: add a reminder to use `crm cluster health` to fix hacluster passwordless ssh authentication (bsc#1228899)
- Dev: scripts: generate readable messages when ssh authentication fails (bsc#1228899)
- Fix: report: should not try interactive authentication when stdin is not a tty (bsc#1228899)
- Dev: main: remove upgradeutil (bsc#1228899)
- Fix: bootstrap: check is_nologin more robustly (bsc#1228251) (#1553)
- Dev: utils: Catch PermissionError when reading files (#1543)
- Fix: corosync: fix linknumber validation (#1546) (#1549)
- Fix: doc: fix broken links in crm.8.adoc (#1546) (#1548)
- Fix: ui_corosync: should raise LinkArgumentParser.SyntaxException when fails to validate linknumber (#1546)
- Fix: corosync: should validate linknumber (#1546)
- Dev: completers: Reuse node completer for cluster remove and health
- Dev: bootstrap: Enhance log clarity during crm cluster remove process
- Dev: corosync: add subcommands 'crm corosync link ...' for managing multi-links in knet (jsc#PED-8083) (#1471)
- Dev: ui_corosync: use corosync-cfgtool instead of corosync-cmaptool to retreive link status (jsc#PED-8083)
- Dev: ui_corosync: reject to remove a link if removing it breaks the cluster (jsc#PED-8083)
- Dev: corosync: allow linknumber not to start with 0
- Dev: ui_corosync: refine the error messages for missing or duplicated nodes (jsc#PED-8083)
- Dev: ui_corosync: sync and reload corosync.conf after changes (jsc#PED-8083)
- Dev: ui_corosync: refactor to reuse configuration loading and saving code
- Dev: bootstrap: refactor to reuse KNET_LINK_NUM_LIMIT from corosync module
- Dev: corosync: add the list of updatable options in the error message when an not updatable option is specified
- Fix: ui_corosync: should not allow empty option values when adding new links
- Dev: docs: add documents for `crm corosync link`
- Fix: corosync: does not detect last link correctly
- Dev: corosync_config_format: sort keys to put `ringX_addr`s together (jsc#PED-8083)
- Dev: ui_corosync: print a message when running link update without any arguement
- Fix: ui_corosync: should detect unconfigured addresses when adding/updating links
- Fix: corosync: show detect duplicated addresses when adding/updating links
- Dev: ui_corosync: add subcommand 'crm corosync link add' (jsc#PED-8083)
- Dev: corosync: implement adding links (jsc#PED-8083)
- Dev: corosync: implement removing links (jsc#PED-8083)
- Dev: corosync: implement updating node addresses (jsc#ped-8083)
- Dev: ui_corosync: add subcommand 'crm corosync link update' (jsc#PED-8083)
- Dev: corosync: implement updating link options (jsc#PED-8083)
- Dev: ui_corosync: add subcommand 'crm corosync link show' (jsc#PED-8083)
- Dev: corosync: implement collecting link info from config (jsc#PED-8083)
- Dev: corosync: refactor COROSYNC_KNOWN_SEC_NAMES_WITH_LIST
- Dev: help: support multi level subcommands (#1542)
- Dev: ui_node: Improve command 'clearstate <node>' (#1534)
- Refactor: help: rename HelpEntry.long to HelEntry.long_help
- Dev: help: capture error messages when `--help` fails rather
- Fix: help: should retrieve help for intermediate levels from _COMMAND_TREE
- Fix: help: append subcommand list to long descriptions
- Dev: help: add support for subcommand aliases
- Dev: help: multilevel subcommand tree rendering in help_overview()
- Dev: command: adapt annotation `command.help` to multilevel help
- Dev: help: use tree struture to store the help of subcommands
- Dev: help: replace seperator '_' in anchors with '.'
- Dev: help: refactor HelpEntry to put lazy loading implementation to a separated subclass
- Fix: Add a new option 'has_fa_advised_op' (bsc#1228858) (#1539)
- Fix: utils: Stop providing the detailed and precise sudoer rules to "hack" the privilege (bsc#1229093) (#1536)
- Dev: utils: Load CIB_file env before some readonly commands (#1540)
- Dev: Rename variables to make them look like boolean type
- Dev: Rename the option 'add_advised_op_values' to 'ra_advised_op_values'
- Dev: Add a new internal flag to control auto add time units on operation
- Fix: Add a new option 'fa_advised_op_values' (bsc#1228858)
- Fix: Raise an exception as a rapid return of ssh-related operations to prevent hang (bsc#1228899) (#1520)
- Fix: bootstrap: ssh public key should be copied to qnetd node when ssh-agent feature is not enabled (bsc#1228950) (#1516)
- Fix: hawk2 cannot call crm script as user hacluster (bsc#1228271) (#1533)
- Fix: completers: deferring calls to crm_mon until envsetup() is called (bsc#1228271)
- Fix: utils: allow haclient group to use cluster level commands (bsc#1228271)
- Fix: scripts: call commands as current user when running as hacluster (bsc#1228271)
- Fix: prun: allow pcopy_to_remote to use intercept (bsc#1228271)
- Fix: Don't add time units to values for existing CIB (bsc#1228817) (#1530)
- Fix: utils: group check failure when os.getgroups() returns empty (bsc#1229030) (#1529)
- Fix: report: When 'core.no_ssh' set to 'yes', crm report works in local mode (bsc#1228899)
- Fix: report: crm report will hang if CIB contains invalid configuraions (bsc#1229686) (#1519)
- Fix: upgradeutil: Immdiately return if config.core.no_ssh is set (bsc#1228899)
- Fix: ui_cluster: Handle 'crm cluster start --all' command (bsc#1228899)
- Fix: ui_cluster: Handle 'crm cluster stop --all' command (bsc#1228899)
- Fix: utils: Define utils.NoSSHError exception and ssh wrapper function (bsc#1228899)
- Fix: config: Add 'core.no_ssh' option (bsc#1228899)
- Dev: sh: Ensure CommandFailure Exception is Picklable Across Processes (bsc#1229686)
- Fix: report: Error output of crm_verify should be recorded in report result (bsc#1229686)
- Revert "Dev: ui_configure: Deprecate configure erase sub-command" (bsc#1228713) (#1501)
- Fix: bootstrap: drop environ SSH_AUTH_SOCK before checking passwordless ssh when it is not enabled (bsc#1228950)
- Fix: bootstrap: should check if sudo is available when running `cluster join -c` with a non-root destination user (bsc#1228950)
- Fix: bootstrap: should check if sudo is available when running `cluster init -N` with a non-root destination user (bsc#1228950)
- Add an option 'add_advised_op_values' to disable adding advised op values (#1494)
- Dev: Add option core.add_advised_op_values, default value is 'yes'
- Dev: Rename variable 'add_default_op_values' to 'add_advised_op_values'
- Dev: scripts/health/collect: use ansible to get sysinfo (#1500)
- Revert "Dev: doc: Add deprecated note for 'crm configure erase'"
- Fix: ui_context: enter_level() should not check requirements for non-functional subcommands (#1498)
- Dev: crm_rpmcheck: use ansible to get package versions (#1497)
- Fix: ui_context: enter_level() should not check requirements for non-functional subcommands
- Fix: DC lost during wait (#1483)
- Fix: qnetd fails to start when TLS is disabled (bsc#1227649) (#1489)
- Dev: qdevice: numbers automatically the steps to generate client certs
- Fix: cibconfig: Disable auto complete advised operation values when adding a rsc_template (#1454)
- Dev: Rename variables to distinguish the concept of adding default
- Dev: prun: add more possible libexec PATH for sftp-server
- Fix: qdevice: config "tls" should accept value "required" (bsc#1227649)
- Fix: bootstrap: refine the wording in the question asking TLS config for qdevice (bsc#1227649)
- Fix: qdevice: TLS certs should always be generated for qnetd (bsc#1227649)
- Dev: prun: replace deprecated stdlib API asyncio.get_event_loop()
- Dev: ui_cluster: refactor Cluster._wait_for_dc()
- Dev: utils: revert previous changes to get_dc()
- Dev: utils: rename wait4dc to wait_dc_stable
- Dev: Remove crmsh/ordereddict.py (#1485)
- Dev: bootstrap: Use the existing function to query cluster property (#1479)
- Fix: cibconfig: Disable complete advised operation values when adding a rsc_template
- Dev: refine change detection for `crm configure` (#1466) (#1486)
- Fix: cli: loading cib should be a soft depenedency
- Dev: ui_context: refactor NON_FUNCTIONAL_COMMAND and NON_FUNCTIONAL_OPTIONS
- Revert changes to `quit` and `up` in ui_context from #1300 (#1466)
- Fix: cibconfig: do not load cib to check if cib is changed (#1466)
- Dev: ui_configure: Complete required parameters first (#1461)
- Fix: ui_context: crm configure up prompt #1466 (#1481)
- Fix: ui_context: crm configure delete autocompletion #1403 #1460 (#1469)
- Dev: ra: Refine RAInfo.params interface to exclude some completion results
- Dev: ui_context: Don't append space when completion ends with equal sign
- Fix: ui_context: crm cluster delete autocompletion #1403 #1460
- Dev: sbd: Replace external/sbd as fence_sbd (#1462)
- Dev: Drop rkt container type in bundle (jsc#PED-5577) (#1427)
- Dev: ra: Guess stonith class type when using fence agents (#1463)
- Fix: upgradeutil: refine error handling (bsc#1226147, bsc#1223371) (#1456)
- Dev: doc: Adjust doc for deprecated multi-rule within a location constraint
- Dev: ui_corosync: Improve corosync.show and corosync.edit subcommands (#1264)
- Dev: doc: Remove 'moon' from doc
- Dev: Hide 'configure ms' command (jsc#PED-8550) (#1450)
- Dev: doc: Drop help info of 'configure ms' command
- Dev: doc: Move 'id-ref' usage into help primitive section
- Dev: Hide 'configure ms' command from UI (jsc#PED-8550)
- Dev: bootstrap: warn about cleartext traffic in corosync (#1448)
- Dev: Hide lsb and service resource agent class type from UI and doc (#1423)
- Dev: ui_resource: Improve completers for 'crm resource' command (#1443)
- Dev: ui_resource: Set role as Promoted/Unpromoted when promote/demote (jsc#PED-8550) (#1445)
- Dev: Parsing resource meta attributes dynamically (#1424)
- Dev: crash_test.utils: Reuse color constants from crmsh.constants
- Dev: config: Set OCF_1_1_SUPPORT to yes (jsc#PED-8550) (#1434)
- Fix: cmd_status: call crm_mon without shell (#1429) (#1430)
- interface network option improvement (#1421)
- Dev: log an error when fencing node without stonith device configured and running (#1425)
- Dev: bootstrap: Minor refactoring of the get_address_list function
- Dev: bootstrap: On join side, adjust the condition of comparing the link number
- Dev: utils: Give valid value list for the -i option when the value is invalid
- Fix: healthcheck: KeyError when local nodename not found in cib (bsc#1223438)
- Dev: Change the RA name string format (jsc#PED-106)
- Dev: utils: Add info when property is newly added
- Dev: corosync_config_format: Enable to parse comments
- Dev: corosync_config_format: Add new line between sections
- Dev: Drop nagios related code, the help text, and the man page (jsc#PED-8259, jsc#PED-8232)
- Fix: bootstrap: open corosync ports in firewalld
- Dev: Drop SuSEfirewall2 support
- Dev: corosync: Show corosync cpg status in `crm corosync status cpg`
- Fix: doc/toolchain: fix missing anchor in generated AIO doc (#1409)
- Dev: corosync: Add corosync.is_valid_corosync_conf function
- Fix: ui_cluster: do_start should parse cmdline args before doing any checks
- Revert "Fix: corosync: should not raise ValueError when failing to open config file"
- Dev: ui_context: make help subcommands to exit with 0 (#1374)
- Fix: corosync: should not raise ValueError when failing to open config file
- Dev: ui_context: ignore requirements when option --help is specified
- Fix: corosync: ConfigParser.get_all(nonexsistent) should return an empty list
- Dev: ui_context: Skip querying CIB when in a sublevel or help command
- Refactor: corosync: move conf_parser.ConfParser to corosync.ConfParser
- Dev: ui_corosync: add completer for `corosync get` and `corosync set`
- Dev: conf_parser: use the new implementation
- Fix: open_atomic: no need to fsync on exception
- Dev: corosync_config_format: new parser and serializer for corosync configuration file
- Dev: bootstrap: Setup the stage dependency on init and join side (bsc#1175865, bsc#1219940)
- Dev: bootstrap: Enhance stage validation
- Fix: healthcheck: Add crmsh.constants.SSH_OPTION when doing ssh in check_local
- Fix: healthcheck: Missing 'id_' prefix while checking the ssh key existence
- Dev: doc: Don't show the usage of 'crm ra info cluster'
- Fix: main: Set PATH environment first
- Dev: bash_completion: Enable complete 'id=' on non-interactive mode
- Dev: doc: update howto build the website (#1374)
- Dev: doc/toolchain: add asciidoc-py (#1374)
- Dev: doc/toolchain: implement adocaio (#1374)
- Dev: doc/toolchain: add asciidoctor (#1374)
- Dev: doc/toolchain: implement generating include statement for asciidoc (#1374)
- Dev: doc/toolchain: add Containerfile (#1374)
- Dev: doc/toolchain: implement adocxt (#1374)
- Dev: doc/toolchain: implement help2adoc (#1374)
- Fix: bootstrap: Detect cluster service on init node before saving the canonical hostname (bsc#1222714)
- Dev: doc: Drop the options for the old daemon names, pengine, crmd, cib and stonithd in the help/man
- Dev: ra: Show related info when "advanced", "generated" and "deprecated" detected in metadata
- Dev: ra: Parsing select values in cluster option metadata
- Dev: ra: Get cluster option metadata from crm_attribute command (jsc#PED-8037, jsc#PED-8016)
- Fix: ui_node: When `utils.list_cluster_nodes` return None, try to get ip list from corosync.conf
- Dev: report: Collect quorum/qdevice/qnetd status
- Dev: bootstrap: Add all nodes' keys to qnetd authroized_keys even init
- Dev: bootstrap: Give a warning when detecting $SSH_AUTH_SOCK but not use --use-ssh-agent option
- Dev: qdevice: Refactor init_qdevice function
- Dev: qdevice: Add all nodes' keys to qnetd authorized_keys
- Fix: sh: Return the value of AuthorizationError.diagnose if it is not None
- Dev: log: Set the log format for crmsh.log as rfc5424
- Fix: utils: set env `CIB_shadow` using `os.environ` (bsc#1205925)
- Fix: pass env to child process explicitly (bsc#1205925)
- Fix: term: unset env `COLUMNS` and `ROWS` (bsc#1205925)
- Fix: sh: pass env to child process explicitly (bsc#1205925)
- Dev: ssh_key: Extract duplicate code about list keys from ssh-agent to a function
- Dev: bootstrap: Refactor qdevice user parsing and finding
- Fix: report: Show different perspectives of cluster
- Fix: ui_node: prevent traceback on node online
- Fix: ui_node: prevent traceback on node standby

* Mon Mar 4 2024 Xin Liang <XLiang@suse.com>
- Release 5.0.0-pre
- Dev: utils: Add IP.is_valid_ip back
- Dev: report: Add config.report.compress_prog option
- Dev: utils: Add functools.wraps to memoize decorator
- Fix: add diagnostic messages when crm report cannot find ssh-agent (bsc#1219538)
- Dev: use ClusterShell for the changes in the previous commit
- Fix: crm report hangs in the root passwordless with ssh-agent
- Fix: report: use ClusterShell for ssh (bsc#1220170)
- Dev: Add 'packaging' dependency to crmsh for version comparison
- Dev: utils: Replace LooseVersion with packaging.version
- Fix: ui_node: clearstate command needs adjustment (bsc#1219831)
- Fix: bootstrap: fail to join a cluster with hostname alias
- Fix: bootstrap: clear stall data about ssh users left possiblely from previous setups (bsc#1219476)
- Fix: report: Escape special characters in pattern (bsc#1220022)
- Dev: ui_configure: verify all cib objects even if there is no primitive resource configured
- Dev: ui_configure: bundle: support podman container
- Dev: constants: Update the bundle help text
- Dev: parse: Assign meaningful id to the bundle's port-mapping and storage-mapping
- Dev: cibconfig: Hide the id of bundle port-mapping and storage-mapping
- Dev: cibconfig: Change the multiline format for bundle
- Dev: utils: Return empty list if corosync.conf does not exist
- Dev: report: Enable crm report even cib.xml does not exist
- Dev: utils: Query pacemaker_remote node correctly
- Import missing sys library in config.py
- Fix: ui_cluster: Can't start cluster with --all option if no cib (bsc#1219052)
- Fix: bootstrap: ssh key of the init node is duplicated in the authorized_keys files of other node (bsc#1218940)
- Fix: sh: guide users to setup key-based ssh authentication when non-interactive authentcation fails (bsc#1219045)
- Fix: parse: Automatically append 's' as default time unit for timeout and interval (#1304)
- Dev: ui_configure: Update the operation id after the monitor interval changed
- Add profile for AWS and GCP with recommended corosync token timeout
- Dev: utils: To prevent shell injection, manipulate the argument array instead of the command line string
- Dev: report: Redirect warning and error from remote node into stderr
- Fix: utils: Add 'sudo' only when there is a sudoer(bsc#1215549)
- Dev: xmlutil: refactor class CrmMonXmlParser
- Dev: completers: Add online_nodes and standby_nodes
- Dev: cmd_status: Show error correctly for crm status
- Dev: ui_utils: Supports '=' when setting node/resource attributes
- Fix: constants: Add several resource meta attributes (bsc#1215319)
- Dev: bootstrap: Check if the join side provides the corresponding network interface
- Dev: bootstrap: Move detect/create mountpoint code to a specific function
- Dev: bootstrap: A scaffold for crmsh to configure cluster with corosync3
- Dev: profiles: Add new 'knet-default' profile type to keep knet only parameters
- Dev: bootstrap: Validate network potions
- Dev: ui_cluster: Add -t/--transport option and change -i/--interface option
- Dev: Add new parser to parse corosync.conf
- Dev: bootstrap: Remove bootstrap.update_expected_votes
- Dev: ui_cluster: Drop deprecated options
- Dev: utils: strip new line when get_stdout_or_raise_error returns
- Dev: corosync: Enable logging.to_logfile
- Fix: prun: setsid to prevent ssh from asking a password from terminal
- Fix: upgradeutil: reduce the timeout for getting sequence from remote node (bsc#1213797)
- Fix: userdir: Get the effictive user name instead of using getpass.getuser (bsc#1213821)
- Dev: requirements: remove parallax
- Fix: upgradeutil: support the change of path of upgrade_seq in crmsh-4.5 (bsc#1213050)
- Fix: ui_context: wait4dc should assume a subcommand completes successfully if no exceptions are raised (bsc#1212992)
- Fix: upgradeutil: do not tried to upgrade when the cluster is partially set up
- Fix: bootstrap: fix the validation of option -N and -c (bsc#1212436)
- medium: ui_node: fix cib rollback race on node standby
- Dev: ui_cluster: Use 'CustomAppendAction' instead of 'append' argparse action
- Fix: geo_cluster: the behavior of choosing a default user in geo_join/geo_init_arbitrator is different with `cluster join` (bsc#1211817)
- Fix: utils: do not use sudoer user to create ssh session unless it is specified explicitly (bsc#1211817)
- Dev: bootstrap: Configure ssh key when fetch geo config
- Dev: ui_corosync: Remove add-node and del-node subcommands
- Dev: cmd_status: Use --output-as option instead of deprecated --as-html and --as-xml options
- Dev: cmd_status: Append 'with quorum' and 'WITHOUT quorum' to display keyword list

* Tue Jan 9 2024 Xin Liang <XLiang@suse.com>
- Release 4.6.0
- Fix: report: Unable to gather log files that are in the syslog format (bsc#1218491)
- Dev: ui_corosync: Add a completer for corosync.set to enumerate all current paths
- Dev: bootstrap: Assign hosts with _context.node_list_in_cluster in join_ssh_merge (bsc#1218331)

* Fri Dec 22 2023 Xin Liang <XLiang@suse.com>
- Release 4.6.0 rc2
- Dev: ui_cluster: Move --use-ssh-agent to optional arguments
- Fix: autoconf: --with-version does not override the variable used in `version.in`
- Dev: unify version string used in setup.py and autotools
- Fix: ui_cluster: Improve the process of 'crm cluster stop' (bsc#1213889)
- Fix: scripts.health: call `setup_logging()` before importing crmsh.reprot.utils
- Dev: log: save backtrace of ValueError in logfile and suppress it in console

* Thu Dec 7 2023 Xin Liang <XLiang@suse.com>
- Release 4.6.0 rc1
- Dev: doc: Unify contents of manpage and help info
- Dev: report: Rewrite crm report module
- Dev: utils: To prevent shell injection, manipulate the argument array instead of the command line string
- Fix: bootstrap: fix the owner and permission of file authorized_keys (bsc#1217279)
- Fix: prun: should not call user_pair_for_ssh() when target host is localhost (bsc#1217094)
- Dev: report: Redirect warning and error from remote node into stderr
- Fix: utils: Add 'sudo' only when there is a sudoer(bsc#1215549)
- Dev: xmlutil: refactor class CrmMonXmlParser
- Dev: completers: Add online_nodes and standby_nodes
- Fix: bootstrap: add informative logging for generating new ssh keypairs
- Fix: forward ssh-agent for `crm report __slave`
- Fix: sh: raise AuthorizationError and generate diagnose messages when ClusterShell fails with 255
- Dev: bootstrap: allow to authenticate interactively in `crm cluster join --use-ssh-agent`
- Dev: ssh-agent: add informative logging for adding keys to authorized_keys
- Dev: ssh-agent: add diagnose messages
- Dev: bootstrap: implement ssh-agent support for geo cluster (jsc#PED-5774)
- Dev: bootstrap: refine key swap for user `hacluster`
- Dev: bootstrap: implement ssh-agent support for qdevice (jsc#PED-5774)
- Dev: bootstrap: implement ssh-agent support (jsc#PED-5774)
- Dev: ui_utils: Supports '=' when setting node/resource attributes
- Fix: report: Pick up tarball suffix dynamically (bsc#1215438)
- Fix: report: Pick 'gzip' as the first compress prog for cross-platform compatibility(bsc#1215438)
- Fix: constants: Add several resource meta attributes (bsc#1215319)
- refactor: move get_stdout and get_stdout_stderr to crmsh.sh.ShellUtils
- Dev: refactor shell calling routines
- Dev: utils: strip new line when get_stdout_or_raise_error returns
- Fix: prun: setsid to prevent ssh from asking a password from terminal
- Fix: upgradeutil: reduce the timeout for getting sequence from remote node (bsc#1213797)
- Fix: userdir: Get the effictive user name instead of using getpass.getuser (bsc#1213821)
- Dev: requirements: remove parallax
- Fix: upgradeutil: support the change of path of upgrade_seq in crmsh-4.5 (bsc#1213050)
- Fix: ui_context: wait4dc should assume a subcommand completes successfully if no exceptions are raised (bsc#1212992)
- Fix: upgradeutil: do not tried to upgrade when the cluster is partially set up
- Fix: bootstrap: fix the validation of option -N and -c (bsc#1212436)
- Fix: geo_cluster: the behavior of choosing a default user in geo_join/geo_init_arbitrator is different with `cluster join` (bsc#1211817)
- Fix: utils: do not use sudoer user to create ssh session unless it is specified explicitly (bsc#1211817)
- medium: ui_node: fix cib rollback race on node standby
- Dev: ui_cluster: Use 'CustomAppendAction' instead of 'append' argparse action
- Dev: bootstrap: Configure ssh key when fetch geo config
- Dev: cmd_status: Use --output-as option instead of deprecated --as-html and --as-xml options
- Dev: cmd_status: Append 'with quorum' and 'WITHOUT quorum' to display keyword list
- Dev: spec: Remove python3-parallax from spec file
- Fix: bootstrap: failed to save username for localhost when initializing a cluster with a qnet server
- Fix: utils: fix `cluster diff --checksum`
- Dev: ui_cluster: refine messages for `cluster run` and `cluster coy`
- Dev: geo: implement non-root support for geo_fetch_config()
- Fix: bootstrap: failed to join when the cluster is initialized with skip_csync2
- Dev: prun: minor refactor and add comments
- Dev: prun: implement timeout
- Dev: prun: add an concurrency limiter
- Dev: remove python dependency parallax
- Dev: scripts: implement non-root support with crmsh.prun
- Dev: implement non-root support for crm_pssh with crmsh.prun
- Dev: remove some direct calls to parallax module
- Dev: prun: add special handling for localhost
- Dev: refine non-root sudoer support for crmsh.parallax.parallax_slurp
- Dev: refine non-root sudoer support for crmsh.parallax.parallax_copy
- Dev: upgradeutil: adapt to new parallax interface
- Dev: refine non-root sudoer support for crmsh.parallax.parallax_call (bsc#1210709)
- Fix: bootstrap: `init --qnetd-hostname` fails when username is not specified (bsc#1211200)
- Fix: bootstrap: crm cluster join default behavior change in ssh key handling (bsc#1210693)
- Fix: help: Long time to load and parse crm.8.adoc (bsc#1210198)
- Fix: cibconfig: use any existing rsc_defaults set rather than create another one (bsc#1210614)
- Fix: lock: Join node failed to wait init node finished (bsc#1210332)
- Dev: log_patterns: update patterns for pacemaker version 2.0+
- Dev: bootstrap: Support replacing sbd device via sbd stage
- Dev: utils: add auto_convert_role flag for handle_role_for_ocf_1_1 function

*Thu Mar 30 2023 Xin Liang <XLiang@suse.com>
- Release 4.5.0
- Dev: bootstrap: Remove /var/lib/crm and ~/.config/crm/crm.conf when removing node
- Dev: bootstrap: Generate the public key on the remote if it does not exist
- Fix: utils: qdevice initialization should user_pair_for_ssh() to get appreciated users (crmsh#1157)
- Fix: crm report: sustain if there are offline nodes (bsc#1209480)
- Dev: upgradeutil: Change 'upgrade' terminology to 'configuration fix'
- Dev: utils: Check passwordless between cluster nodes
- Dev: Dockerfile: Update pacemaker and libqb version
- Dev: remove 'sudo' prefix internally
- Fix: validate ssh session when the users is determined by guessing (bsc#1209193)
- Dev: bootstrap: Change user shell for hacluster on remote node, in init_ssh_impl function
- Fix: parallax: Use 'sudo bash -c' when executing commands via sudoer (bsc#1209192)
- Dev: qdevice: Add more debug messages for running commands
- Dev: log: For the log_only_to_file method, show debug log in debug mode

* Thu Mar 9 2023 Xin Liang <XLiang@suse.com>
- Release 4.5.0 rc2
- Dev: version: Bump crmsh version to 4.5.0
- Fix: bootstrap: Swap hacluster ssh key with other nodes
- Fix: report: Fix crm report issue under non-root user
- Fix: bootstrap: Don't save core.debug when saving core.hosts (bsc#1208991)
- Dev: log: Redirect debug messages into stderr

* Fri Mar 3 2023 Xin Liang <XLiang@suse.com>
- Release 4.5.0 rc1
- Fix: qdevice: Unable to setup qdevice under non-root user (bsc#1208770)
- Dev: upgradeutil: do upgrade silently (bsc#1208327)
- Fix: bootstrap: `crm cluster join ssh` raises TypeError (bsc#1208327)
- Dev: utils: Change the way to get pacemaker's version (bsc#1208216)
- Dev: bootstrap: guess and ask whether to operate in non-root mode (jsc#PED-290)
- Dev: bootstrap: allow the cluster to operate with ssh session under non-root sudoer (jsc#PED-290)
- Fix: hawk fails to parse the slash (bsc#1206217)
- Fix: extra logs while configuring passwordless (bsc#1207720)
- Dev: utils: Check current user's privilege and give hints to user
- Dev: ui_configure: Deprecate configure erase sub-command
- Fix: report: Catch read exception (bsc#1206606)
- Feature: replace root by a custom user with root privileges
- Fix: bootstrap: Unset SBD_DELAY_START when running 'crm cluster start' (bsc#1202177)
- Dev: ui_node: redirect `node delete` to `cluster remove`
- Feature: bootstrap: Add option -x to skip csync2 initialization stage during the whole cluster bootstrap
- Dev: parse: complete advised operation values for other actions beside monitor
- Dev: ui_context: redirect `foo -h`/`foo --help` to `help foo` (bsc#1205735)
- Fix: qdevice: Adjust SBD_WATCHDOG_TIMEOUT when configuring qdevice not using stage (bsc#1205727)
- Fix: cibconfig: Complete promotable=true and interlave=true for Promoted/Unpromoted resource (bsc#1205522)
- Fix: corosync: show corosync ring status if has fault (bsc#1205615)
- Dev: bootstrap: fix passwordless ssh authentication for hacluster automatically when a new node is joining the cluster (bsc#1201785)
- Dev: upgradeutil: automated init ssh passwordless auth for hacluster after upgrading (bsc#1201785)
- Dev: parse: cli_to_xml: populate advised monitor/start/stop operations values
- fix: log: fail to open log file even if user is in haclient group (bsc#1204670)
- Fix: sbd: Ask if overwrite when given sbd device on interactive mode(bsc#1201428)
- Dev: bootstrap: Adjust cluster properties including priority-fencing-delay
- Fix: ui_cluster: 'crm cluster stop' failed to stop services (bsc#1203601)
- Dev: bootstrap: Adjust pcmk_delay_max and stonith-timeout for all configured fence agents
- Dev: cibconfig: "crm config show related:xxx" provides partial search among class, provider, type fields
- Fix: crash_test: do not use firewalld to isolate a cluster node (bsc#1192467)
- Dev: bootstrap: Add delay to start corosync when node list larger than 5
- Dev: log: print begin and end marker in different lines in status_long
- Dev: parallax: Add LogLevel=error ssh option to filter out warnings (bsc#1196726)
- Revert "Fix: utils: Only raise exception when return code of systemctl command over ssh larger than 4 (bsc#1196726)" (bsc#1202655)
- fix: configure: refresh cib before showing or modifying if no pending changes has been made (bsc#1202465)
- Fix: bootstrap: Use crmsh.parallax instead of parallax module directly (bsc#1202006)

* Wed Aug 10 2022 Xin Liang <XLiang@suse.com>
- tag: 4.4.1 for bug fix
- Fix: utils: use -o and -n to compare files instead of strings for crm_diff (bsc#1201312)
- Dev: bootstrap: remove cluster add sub-command
- Fix: bootstrap: -N option setup the current node and peers all together (bsc#1175863)
- Dev: doc: add help info for related: prefix for 'configure show' command
- Dev: cinconfig: enable "related:" prefix to show the objects by given ra type
- Fix: crm report: use sudo when under non root and hacluster user (bsc#1199634)
- Fix: utils: wait4dc: Make change since output of 'crmadmin -S' changed(bsc#1199412)
- Fix: bootstrap: stop and disable csync2.socket on removed node (bsc#1199325)
- Fix: crm report: Read data in a save way, to avoid UnicodeDecodeError(bsc#1198180)
- Fix: qdevice: Add lock to protect init_db_on_qnetd function (bsc#1197323)
- Fix: utils: Only raise exception when return code of systemctl command over ssh larger than 4 (bsc#1196726)

* Thu Feb 17 2022 Xin Liang <XLiang@suse.com>
- Release 4.4.0
- Dev: README: update with unit tests steps
- Dev: crmsh-ci.yml: Add python3.6 and 3.10 into unit test list
- Dev: tox: Adjust tox.ini, add py36 and py310 in envlist

* Thu Feb 8 2022 Xin Liang <XLiang@suse.com>
- Release 4.4.0 rc2
- Fix: sbd: not overwrite SYSCONFIG_SBD and sbd-disk-metadata if input 'n'(bsc#1194870)
- Dev: bootstrap: the joining node retries an active cluster
- Dev: behave: Change docker cgroup driver as systemd
- Dev: ui_node: Use diff and patch instead of replace cib
- Dev: crm report: Add dpkg support

* Thu Jan 14 2022 Xin Liang <XLiang@suse.com>
- Release 4.4.0 rc1
- Fix: bootstrap: Don't change pacemaker.service bootup preference (bsc#1194616)
- Fix: log: Change the log file owner as hacluster:haclient (bsc#1194619)
- Dev: crm.conf: Add OCF_1_1_SUPPORT flag to control ocf 1.1 feature
- Dev: doc: Introduce promotable clone and role Promoted/Unpromoted
- Fix: crash_test: Adjust help output of 'crm cluster crash_test -h'(bsc#1194615)
- Dev: utils: Convert Master/Slave to Promoted/Unpromoted if schema support OCF 1.1
- Dev: xmlutil: Replace Promoted/Unpromoted as Master/Slave when OCF 1.0 schema detected
- Dev: doc: Replace pingd as ocf:pacemaker:ping
- Dev: ui_resource: set target-role as Promoted/Unpromoted when doing promote or demote
- Dev: ra: Support Promoted/Unpromoted
- Dev: ocfs2: Fix running ocfs2 stage on cluster with diskless-sbd
- Fix: bootstrap: Change default transport type as udpu(unicast) (bsc#1132375)
- Dev: bootstrap: Avoid duplicated setting for rsc_defaults
- Fix: ui_configure: Give a deprecated warning when using "ms" subcommand (bsc#1194125)
- Fix: xmlutil: Parse promotable clone correctly and also consider compatibility (bsc#1194125)
- Dev: doc: Rename hb_report as crm report
- Dev: crm report: Get distribution info correctly and reuse it
- Dev: crm_report: Integrate report log into crmsh logging
- Dev: log: Print new line when input using default value in interactive mode
- Fix: bootstrap: Change log info when need to change user login shell (bsc#1194026)
- Dev: crm_report: Move hb_report directory to crmsh/report
- Dev: doc: Mention /etc/crm/profiles.yml in man crm
- Dev: ui_node: Delete node directly using cibadmin if crm_node -R failed
- Dev: xmlutil: Add class CrmMonXmlParser to parse xml output of crm_mon
- Dev: ui_cluster: Exit stop process when there is no DC
- Dev: ui_cluster: check dlm controld ra is running when stop cluster
- Dev: log: In status_long function, add a blank line when exception
- Revert "Dev: ui_cluster: Make sure node is online when stop service"
- Dev: sbd: Adjust timeout related values
- Dev: ui_cluster: check if qdevice service started when starting cluster if qdevice configured
- Dev: idmgmt: Avoid leading with number for ID
- Dev: ui_cluster: Check service is available before enable/disable qdevice
- Dev: ui_node: Improve node standby/online methods
- Dev: ui_cluster: Remove node from node list if node is unreachable
- Dev: Give warning when no-quorum-policy not set as freeze while using DLM
- Fix: crm: To avoid the potential "permission denied" error under other users (boo#1192754)
- Fix: ui_resource: Parse node and lifetime correctly (bsc#1192618)
- Dev: doc: Consolidate help info for those using argparse
- Dev: ui_cluster: Make sure node is online when stop service
- Dev: ui_cluster: Graceful shutdown dlm
- Dev: ui_cluster: Support multi sub-commands with --all option or specific node
- orderedset.py: fix deprecation on collections.MutableSet
- Dev: crm report: Consolidate collect functions in collect.py and running them in parallel
- Dev: crm report: Collect report using multiprocessing correctly
- Dev: CI: change docker image as leap 15.2, and enlarge the timeout value for each CI case
- Fix: ui_resource: Parse lifetime option correctly (bsc#1191508)
- Dev: log: Rotate crmsh.log as 1M and backup count as 10
- Fix: bootstrap: Add /etc/crm/crm.conf and /etc/crm/profiles.yml into /etc/csync2/csync2.cfg (bsc#1190466)
- Dev: Using python logging in all crmsh modules
- Dev: hb_report: Integrate hb_report logging
- Dev: crash_test: Integrate crash test logging
- Dev: crm: Load python logging config in /usr/sbin/crm
- Dev: log: Using logging as log system in crmsh
- Dev: msg: Remove msy.py
- Dev: constants: Add color const for logging
- Fix: utils: Improve detect_cloud function and support non-Hyper-V in Azure
- Fix: hb_report: Using python way to collect ra trace files (bsc#1189641)
- Fix: bootstrap: Adjust corosync and sbd parameters according to the profile environment detected (bsc#1175896)
- Fix: sbd: adjust sbd systemd TimeoutStartSec together with SBD_DELAY_START
- Dev: Makefile: add etc/profiles.yml and move crm.conf.in into etc
- Fix: doc: Note that resource tracing is only supported by OCF RAs(bsc#1188966)
- Dev: ui_resource: Enhancement trace output
- Fix: bootstrap: adjust host list for parallax to get and copy known_hosts file(bsc#1188971)
- Medium: ra: performance/usability improvement (avoid systemd)
- Dev: ui_context: Add info when spell-corrections happen
- Dev: ocfs2: set no-quorum-policy as freeze when configuring OCFS2
- Fix: parse: Should still be able to show the empty property if it already exists(bsc#1188290)
- Dev: qdevice: Split class QDevice into qdevice.py from corosync.py
- Fix: bootstrap: check for missing fields in 'crm_node -l' output (bsc#1182131)
- Fix: resource: make untrace consistent with trace (bsc#1187396)
- Dev: sbd: enable SBD_DELAY_START in virtualization environment
- Fix: ocfs2: Skip verifying UUID for ocfs2 device on top of raid or lvm on the join node (bsc#1187553)
- Dev: sbd: Split class SBDManager into sbd.py from bootstrap.py

* Thu Jun 17 2021 Xin Liang <XLiang@suse.com>
- Release 4.3.1
- Fix: history: use Path.mkdir instead of mkdir command(bsc#1179999)
- Dev: doc: replace preflight check doc as crash test doc
- Dev: crash_test: Add big warnings to have users' attention to potential failover
- Dev: crash_test: rename preflight_check as crash_test
- Fix: bootstrap: update sbd watchdog timeout when using diskless SBD with qdevice(bsc#1184465)
- Dev: utils: allow configure link-local ipv6 address
- Dev: bootstrap: return when not specify ocfs2 device on interactive mode
- Fix: parse: shouldn't allow property setting with an empty value(bsc#1185423)
- Dev: crm.8.adoc: remove redundant help message
- Fix: help: show help message from argparse(bsc#1175982)
- Dev: ocfs2: add ocfs2.OCFS2Manager to manage ocfs2 configure process
- Dev: watchdog: split class Watchdog into watchdog.py from bootstrap.py
- Dev: bootstrap: raise exception and execute status_done on success
- Fix: bootstrap: add sbd via bootstrap stage on an existing cluster (bsc#1181906)
- Fix: bootstrap: change StrictHostKeyChecking=no as a constants(bsc#1185437)
- Dev: cibconfig: resolve TypeError for fencing-topology tag
- Dev: bootstrap: change status_long with contextmanager
- Dev: bootstrap: disable unnecessary warnings (bsc#1178118)
- Fix: bootstrap: sync corosync.conf before finished joining(bsc#1183359)
- Dev: add "crm corosync status qdevice" sub-command
- Dev: ui_cluster: add qdevice help info
- Dev: ui_cluster: enable/disable corosync-qdevice.service
- Fix: bootstrap: parse space in sbd device correctly(bsc#1183883)
- Dev: preflight_check: move preflight_check directory into crmsh
- Fix: bootstrap: get the peer node name correctly (bsc#1183654)
- Fix: update verion and author (bsc#1183689)
- Dev: bootstrap: enable configuring qdevice on interactive mode
- Fix: ui_resource: change return code and error to warning for some unharmful actions(bsc#1180332)
- Dev: README: change the build status link in README
- Dev: lock: change lock directory under /run
- Fix: bootstrap: raise warning when configuring diskless SBD with node's count less than 3(bsc#1181907)
- Fix: bootstrap: Adjust qdevice configure/remove process to avoid race condition due to quorum lost(bsc#1181415)
- Dev: utils: remove unused utils.cluster_stack and its related codes
- Dev: cibconfig: remove related code about detecting crm_diff support --no-verion
- Fix: ui_configure: raise error when params not exist(bsc#1180126)
- Dev: doc: remove doc for crm node status
- Dev: ui_node: remove status subcommand
- Fix: hb_report: walk through hb_report process under hacluster(CVE-2020-35459, bsc#1179999; CVE-2021-3020, bsc#1180571)
- Fix: bootstrap: setup authorized ssh access for hacluster(CVE-2020-35459, bsc#1179999; CVE-2021-3020, bsc#1180571)

* Fri Feb 19 2021 Xin Liang <XLiang@suse.com>
- Release 4.3.0
- Dev: doc: add analyze and preflight_check help messages in doc
- Dev: analyze: Add analyze sublevel and put preflight_check in it
- Dev: utils: change default file mod as 644 for str2file function
- Dev: hb_report: Detect if any ocfs2 partitions exist
- Dev: lock: give more specific error message when raise ClaimLockError
- Fix: Replace mktemp() to mkstemp() for security
- Dev: unit test cases for preflight check ASR SBD feature utils.py
- Fix: Remove the duplicate --cov-report html in tox.
- Dev: unit test cases for preflight check ASR SBD feature check.py and task.py
- Fix: fix some lint issues.
- Fix: Replace utils.msg_info to task.info
- Fix: Solve a circular import error of utils.py
- Fix: hb_report: run lsof with specific ocfs2 device(bsc#1180688)
- Dev: corosync: change the permission of corosync.conf to 644
- Fix: preflight_check: task: raise error when report_path isn't a directory
- Fix: bootstrap: Use class Watchdog to simplify watchdog config(bsc#1154927, bsc#1178869)
- Dev: Polish the sbd feature.
- Dev: Replace -f with -c and run check when no parameter provide.
- Fix: Fix the yes option not working
- Fix: Remove useless import and show help when no input.
- Dev: Correct SBD device id inconsistenc during ASR
- Fix: completers: return complete start/stop resource id list correctly(bsc#1180137)
- Dev: Makefile.am: change makefile to integrate preflight_check
- Medium: integrate preflight_check into crmsh
- Fix: bootstrap: make sure sbd device UUID was the same between nodes(bsc#1178454)
- Fix: utils: skip if no netmask in the result of ip -o addr show(bsc#1180421)
- Fix: bootstrap: add /etc/modules-load.d/watchdog.conf into csync.cfg(bsc#1180424)
- Low: bootstrap: make invoke return specific error(bsc#1177023)
- Dev: test: add timeout-minutes to each test job
- Fix: bootstrap: Refactor join_lock.py for more generic using purpose
- Dev: bootstrap: use ping to test host is reachable before joining
- Dev: unittset: adjust unit test code for setup_passwordless_with_other_nodes function
- Low: bootstrap: check cluster was running on init node
- Fix: bootstrap: use class JoinLock to manage lock in parallel join(bsc#1175976)

* Tue Dec 1 2020 Xin Liang <XLiang@suse.com>
- Release 4.2.1
- Fix: utils: improve disable_service and enable_service function(bsc#1178701)
- Fix: bootstrap: disable corosync-qdevice if not configured(bsc#1178701)
- Low: bootstrap: should include /etc/sysconfig/nfs into csync2.cfg(bsc#1178373)
- Low: bootstrap: minor change for _get_sbd_device_interactive function(bsc#1178333)
- Fix: hb_report: collect corosync.log if it defined in config file(bsc#1148874)
- Fix: ui_cluster: check service status while start/stop(bsc#1177980)
- Fix: bootstrap: Stop hawk service when removing node(bsc#1175708)
- Fix: cibverify: give warning if crm_verify return warning(bsc#1122391)
- Fix: parse: convert score to kind for rsc_order configure(bsc#1122391)
- Fix: bootstrap: remove specific configured address while removing node(bsc#1165644)
- Fix: hb_report: fix sanitize functionality(bsc#1163581)
- FIx start_delay with start-delay
- fix on_fail should be on-fail
- Low: config: Try to handle configparser.MissingSectionHeaderError while reading config file
- Medium: ui_configure: Obscure sensitive data by default(bsc#1163581)
- Fix: hb_report: collect archived logs(bsc#1148873)
- Low: bootstrap: check whether sbd package installed
- Low: bootstrap: Improve qdevice configure process * More reasonable naming for variables * More function docstrings * Move function to more reasonable location * Create functions to integrate similar functions inside one * Change big function to small one, more easier for unit test, like: * Refactor functions * Create utils.cluster_run_cmd function to avoid using crm cluster run directly in code
- Low: bootstrap: swap keys with other nodes when join_ssh(bsc#1176178)
- Fix: bootstrap: revert ssh_merge function for compatibility(bsc#1175057)
- Fix: bootstrap: adjust sbd config process to fix bug on sbd stage(bsc#1175057)
- Low: corosync: handle the return code of corosync-quorumtool correctly(bsc#1174588)
- Low: ui_corosync: copy ssh key to qnetd while detect need password(bsc#1174385)
- Low: hb_report: Fix collecting of binary data (bsc#1166962)
- High: bootstrap: ssh key configuration improvement(bsc#1169581)
- High: bootstrap: bootstrap network improvement
- Revert "Fix: bootstrap: crmsh use its own specific ssh key(bsc#1169581)"
- Low: cibconfig: Avoid adding the ID attribute to select_* nodes
- High: bootstrap: using class SBDManager for sbd configuration and management(bsc#1170037, bsc#1170999)
- Fix: bootstrap: crmsh use its own specific ssh key(bsc#1169581)
- Low: bootstrap: change ha-cluster-bootstrap log path
- Low: ui_corosync: print cluster nodes while getting quorum and qnetd status
- Low: bootstrap: exit with proper error messages when ssh return failed
- Low: ui_cluster: use argparse choices to validate -i and -t option
- Low: corosync: Use with statement  to open file
- Fix: ui_resource: refresh <Tab> should complete resource first(bsc#1167220)
- Low: ui_context: give warning if using alias command
- Low: bootstrap: Simplify bootstrap context
- Low: corosync: Improve qdevice configure process
- Fix: doc: Update man page about completion example of crm resource(bsc#1166644)
- Fix: bootstrap: Change condition to add stonith-sbd resource(bsc#1166967)
- Fix: bootstrap: use csync2 '-f' option correctly(bsc#1166684)
- Low: setup.py: update crmsh's version
- Fix: crmsh.spec.in: enable completion of crm command(bsc#1166329)
- Low: crmsh.spec.in: sync contents from NHF's crmsh.spec file
- Low: utils: update detect_cloud pattern for aws
- Low: doc: update configure.set documentation
- Feature: configure: make configure.set to update operation
- Low: replace configparser.SafeConfigParser as configparser.ConfigParser
- Fix: ui_cluster: Not allowed space value for option (bsc#1141976)
- Fix: crmsh.spec: using mktemp to create tmp file(bsc#1154163)
- Fix: bootstrap: set placement-strategy value as "default"(bsc#1129462)
- Fix: hb_report: disable dump all tasks stack into dmesg(bsc#1158060)

* Mon Dec 23 2019 Xin Liang <XLiang@suse.com> and many others
- Release 4.2.0
- Merge pull request #464 from liangxin1300/2019_crmsh_qdevice_qnetd
- Low: ui_cluster: replace --qdevice as --qnetd-hostname
- Low: corosync: add log and debug messages on each certificate steps
- Low: ui_cluster: change qdevice related option's help message
- Low: bootstrap: support qdevice heuristics
- Low: bootstrap: start qdevice/qnetd service when not overwrite configuration
- Low: ui_corosync: improve corosync status sub-command
- Low: bootstrap: when removing qdevice, remove qdevice database
- Low: bootstrap: qdevice certification process when cluster join
- Low: ui_cluster: change option info for qdevice/qnetd
- Low: bootstrap: qdevice certification process when cluster init
- Low: bootstrap: interface for removing qdevice
- Low: corosync: check tie-breaker is a valid nodeid
- Low: bootstrap: improve init_qdevice function
- Low: bootstrap: write qdevice config section when configuring qdevice in stage
- Low: bootstrap: adjust corosync configuration for qdevice
- Low: bootstrap: make qdevice process as a bootstrap stage
- Low: bootstrap: manage qnetd node
- Low: bootstrap: valid qdevice parameters
- Merge pull request #483 from liangxin1300/20191105_python_behave
- Merge pull request #484 from liangxin1300/20191112_nose_verbose
- Merge pull request #482 from liangxin1300/20191101_parallax_functions
- Low: parallax: create class Parallax to simplify using parallax
- Merge pull request #480 from aleksei-burlakov/config-do_property
- Doc: ui_configure: do_property: ask to remove maintenance from resources and nodes
- Low: ui_configure: do_property: ask to remove maintenance from resources and nodes
- Merge pull request #476 from liangxin1300/20191011_ssh_key
- Merge pull request #478 from aleksei-burlakov/node-do_maintenance
- Doc: ui_node: do_maintenance: ask to remove maintenance attr from primitives
- Low: ui_node: do_maintenance: ask to remove maintenance attr from primitives
- Merge pull request #422 from liangxin1300/20190227a
- Merge pull request #479 from aleksei-burlakov/resource-do_maintenance
- Low: ui_resource: ask about ALL primitives when overriding attributes
- Fix: corosync: reject append ipaddress to config file if already have(bsc#1127095, 1127096)
- Low: bootstrap: create authorized_keys file if not exists
- Low: bootstrap: add "--no-overwrite-sshkey" option to avoid SSH key be overwritten
- Low: bootstrap: don't overwrite ssh key if already exists
- Merge pull request #465 from liangxin1300/20190814a
- Merge pull request #461 from gao-yan/sanitize-orig-cib-as-patch-base
- Merge pull request #472 from vvidic/yaml-load
- Merge pull request #471 from aleksei-burlakov/crm-resource-maintaintenance
- Doc: ui_resource: resolve maintenance vs is-managed conflict
- Low: ui_resource: resolve maintenance vs is-managed conflict
- Scripts: fix yaml loader warning
- Merge pull request #468 from aleksei-burlakov/crm-resource-maintaintenance
- Low: doc: update cluster run help documetation
- Low: ui_cluster: running command for multiple specific nodes
- Fix: ui_cluster: refactor function list_cluster_nodes and handle the None situation(bsc#1145520)
- Low: ui_resource: maintenance: stop using crm_resource
- Merge pull request #467 from liangxin1300/revert_52a44fdce
- Merge pull request #466 from liangxin1300/20190816_bsc1145823
- Fix: utils: fix logic for process non comments line(bsc#1145823)
- High: cibconfig: Correctly sanitize the original CIB as patch base (bsc#1127716, bsc#1138405)
- Revert "high: cibconfig: Use correct CIB as patch base (bsc#1127716)"
- Partially revert "medium: cibconfig: Sanitize CIB for patching (bsc#1127716)"
- Merge pull request #457 from vvidic/commmon
- Doc: manpages: Fix spelling

* Fri Jun 21 2019 Diego Akechi <dakechi@suse.com> and many others
- Release 4.1.0
- Fix: utils: issue in to_ascii (bsc#1138115)
- Fix: bootstrap: bindnetaddr should accept both network and specific IP(bsc#1135585, bsc#1135586)
- Fix: hb_report: analysis.txt should includes warning, error, critical messages(bsc#1135696)
- Included Contributing Section on README.
- medium: ui_node: Check corosync state before clearstate (bsc#1129702)
- fix: hb_report: handle UnicodeDecodeError(bsc#1130715)   * setting error='replace' to replace invalid utf-8 characters   * try to catch UnicodeDecodeError and print traceback
- medium: cibconfig: Sanitize CIB for patching (bsc#1127716)
- high: cibconfig: Use correct CIB as patch base (bsc#1127716)
- medium: parse: Detect and error on illegal ordering of op attributes (bsc#1129210)
- medium: utils: Handle sysconfig values containing = (bsc#1129317)
- low: hb_report: collect output of "sbd dump" and "sbd list"(bsc#1129383)
- low: msg: add timestamp for DEBUG messages(bsc#1129380)
- Fix: bsc#1129719: check command and related files exist
- Low: doc: add related notice for new "promot*" tags
- High: testcase: add testcases from new added "promot*"tags
- High: constants: add "promotable", "promoted-max" and "promoted-node-max" in clone meta attributes
- Low: testcase: add testcase for #425
- Fix: cibconfig: #425 The ID attribute is not required for select and select_attributes
- doc: Add guide to releasing new versions
- medium: scripts: Set kind for order constraints, not score (bsc#1123187)
- low: utils: add support for dpkg
- low: utils: add support for apt-get
- low: utils: convert string contstants to bytes
- High: Testcases: update the testcases/bugs for bsc#1120554
- Fix: bsc#1120857,1120856 bootstrap warning messages should better start with like "WARNING:" instead of "!"
- Fix: bsc#1120554, bsc#1120555 crmsh crashed when using configure>template>apply
- medium: cibverify: Increase log level for verification (bsc#1116559)
- high: cibconfig: Normalize - to _ in param names (bsc#1111579)
- medium: ra: Handle obsoletes attribute (bsc#1111579)
- ui_cluster: restart cluster is added
- auto-commit enabling/disabling maintenance mode for a whole cluster
- medium: bootstrap: Skip netmask check on GCP (bsc#1106946)
- medium: utils: Detect local IP on GCP (bsc#1106946)
- medium: bootstrap: Correctly check rrp_mode flag (bsc#1110463)
- medium: bootstrap: Pick first match for multiple routes (bsc#1106946)
- medium: utils: Use cloud metadata service to discover IP (bsc#1106946)
- Fix: bootstrap: change default ip address way for both mcast and unicat(bsc#1109975,bsc#1109974)
- Fix incorrect bindnetaddr in corosync.conf (bsc#1103833) (bsc#1103834)
- fix: bootstrap: non interactive unicast cluster init and join(bsc#1109172)
- medium: bootstrap: Disable strict host key checking on all ssh invocations
- support ocfs2 log collecting
- hbreport: process name change for pacemaker 2.0(bsc#1106052)
- Fix: bootstrap: "-i" option doesn't work(bsc#1103833, bsc#1103834)
- Low: bootstrap: No warning message when using '-q'
- high: ra: Support Pacemaker 2.0 daemon names
- high: config: Locate pacemaker daemons more intelligently (#67) (bsc#1096783)
- Low: Travis-CI: make sure exit value is not 0 while unittest failed
- Fix: TypeError in logparser.py(bsc#1093433)
- High: hbreport: fix UnicodeEncodeError while print(bsc#1093564)

* Thu Mar 28 2019 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 3.0.4
- Fix: bootstrap: "-i" option doesn't work(bsc#1103833, bsc#1103834)
- high: bootstrap: Use default IP address for ring0 (bsc#1069142)
- low: bootstrap: change multi-heartbeats as option-mode
- low: bootstrap: Clarify messages
- low: bootstrap: give a confirm message when remove node
- low: bootstrap: Improve comments / error messages
- low: bootstrap: Fall back to logging into $TMPDIR/ha-cluster-bootstrap.log
- low: bootstrap: Check for firewalld before SuSEfirewall2
- medium: bootstrap: Add support for chrony
- Detect firewall by checking installed packages
- low: ui_cluster: complete node name once     or the same node name will be completed many times with many "Tab"s
- medium: enable add the second heartbeat line for unicast   Changes inlcude:   1. IPv4 & IPv6 support   2. user should specify local IP for ringX_addr when init and join both   3. user input must be one of local IP addresses   4. peer ringX_addr and local ringX_addr must in the same network
- medium: bootstrap: check init options before running   * we can add other option checkings to here later
- low: bootstrap: simplify the code for checking adminIP
- low: bootstrap: reset dev value when input of dev not valid
- low: bootstrap: catch OSError except instead of crash
- low: bootstrap: give error hints when use sbd without watchdog
- medium: enable add the second heartbeat line for mcast   Changes include:   1. skip second heartbeat configure when number of local networks < 2   2. bindnetaddrs must be different and the gap between ports must larger than 1   3. give different default value for second configuration   4. IPv4 & IPv6 support
- medium: bootstrap: adminIP should not be exist before config
- medium: bootstrap: adminIP should not be the network self
- fix: utils.list_cluster_nodes: use "crm_node -l" first
- medium: utils: list_cluster_nodes: read nodes list from cib.xml
- medium: utils: extend "IP/Network" codes for IPv4/IPv6 both
- low: ui_cluster: strip "None" when cmd stdout is None
- medium: bootstrap: valid adminIP   The administration virtaul IP must:   1) have a valid IPv4/IPv6 formation   2) belongs one of local networks
- medium: bootstrap: use strict regrex and valid function for bindnetaddr/mcastaddr
- low: bootstrap: when node joining, it will take a while after init_cluster_local
- low: bootstrap: join_csync2 may take a long while   so, use status_long and status_done to give the hints
- medium: bootstrap: configure with IPv6(unicast)
- medium: bootstrap: configure with IPv6(mcast)   Changes include:   1) use "-I" option stand for IPv6 in ui_cluster   2) totem.ip_version should set as "ipv6"   3) choose one interface which has IPv6 address as default values   4) each node must have an uniqe nodeid when using IPv6,      the nodeid came from IPv6 address in default interface   5) for IPv6 network compute, learn from      https://github.com/tehmaze/ipcalc
- medium: bootstrap: disable completion and history when running bootstrap
- low: ui_cluster: Add two new lines before add a new node
- low: bootstrap: Don't rely on ha-cluster-* shortcuts
- fix: bootstrap: remove cib.xml before corosync.add_node
- low: bootstrap: color the input error message
- medium: bootstrap: add callback function to check valid port range
- high: cibconfig: Normalize - to _ in param names (bsc#1111579)
- medium: ra: Handle obsoletes attribute (bsc#1111579)
- Fix missing argument in RAInfo's constructor.

* Thu Jun 28 2018 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 3.0.3
- low: bootstrap: suppress the error message
- high: bootstrap: expected votes wouldn't update in unicast mode
- medium: bootstrap: run "csync2_update" for all files after new joining node call csync2_remote (bsc#1087248)
- medium: utils: Avoid crash on missing process id (bsc#1084730)

* Thu Jun 28 2018 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 3.0.2
- high: ra: Support Pacemaker 2.0 daemon names
- high: config: Locate pacemaker daemons more intelligently (#67) (bsc#1096783)
- Fix: TypeError in logparser.py(bsc#1093433)
- Parse /32 route entries
- medium: ui_cluster: Stop corosync when stopping pacemaker (bsc#1066156)
- low: ui_node: normal is deprecated in favor of member
- fix: ui_resource: Using crm_failcount instead of crm_attribute(bsc#1074127)
- Fix is_program(dmidecode) error (bsc#1070344)
- low: ra: Don't require deprecated parameters (#321)
- medium: bootstrap: Missing dmidecode on ppc64le (bsc#1069802)
- low: bootstrap: Improve message when sbd is not installed (bsc#1050427)
- Fix SBD configuration when using SBD device (Fixes #235)


* Fri May 18 2018 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 4.0.0 - Python3 only compatible.
- Parse /32 route entries
- low: terminal will lose cursor after type ctrl+c(bsc#1090626)
- high: bash_completion: Adjust for non-interactive mode(bsc#1090304)
- low: ui_configure: Adjust prompt string after help messages(bsc#1090140)
- doc: Fix unbalanced example marker
- high: hbreport: adjustment for hbreport(bsc#1088784)   * encoding utf-8 when open a file   * pacemaker.log should not exclude as HA_LOG
- high: ui_resource: Undeprecate refresh and remove reprobe (bsc#1084736)
- Update man-2.0.adoc
- Update man-1.2.adoc
- Update crm.8.adoc
- Update man-3.adoc
- low: bootstrap: Updated authkey generation (bsc#1077389)
- low: bootstrap: Strip spaces before some status descriptions
- fix: bootstrap: Create pacemaker_remote authkey(#bsc 1077389)
- low: bootstrap: Always ask whether to use sbd
- fix: hb_report: using log_debug instead of log_warning
- fix: hb_report: got the right file decompressor(bsc#1077553)
- medium: hb_report: Avoid calling deprecated network utilities (bsc#1073638)
- high: crm_script: Python2->3 string conversion crash in wizards (bsc#1074835)
- fix: hb_report: Collect irregular log file
- fix: hb_report: Don't create *.log.info file if not in timespan
- medium: hb_report: implement dlm_dump info
- fix: hb_report: sbd info patch for review
- fix: hb_report: add some new packages name in constants.PACKAGES
- fix: hb_report: collect sbd info (bsc#1076389)
- low: constants: Add bundle to more lists of things
- low: xmlutil: Add bundle to sort (bsc#1076239)
- medium: constants: Add bundle to constants (bsc#1076239)
- implement logic for lms and ffsplit
- low: ui_node: normal is deprecated in favor of member
- medium: ui_cluster: Stop corosync when stopping pacemaker (bsc#1066156)
- low: ui_configure: no complete for rename new_id
- high: bootstrap: Add QDevice/QNetd support (bsc#1070961)
- medium: bootstrap: Don't try to remove full nodes from remote nodes
- low: bootstrap: Don't ssh to localhost in remove
- clvm-vg wizard: update to use LVM-activate RA
- clvm wizard: update to use lvmlockd instead of clvmd
- fix: cibconfig: cleanup codes about default-action-timeout
- high: scripts: Enable complex expressions in when: (bsc#1074835)
- medium: hb_report: Support new pacemaker.log location (fate#324508)
- low: ui_configure: enable completer for rsc_template
- low: ui_configure: Complete rsc template correctly
- fix: ra: Convert bytes to str
- fix: ui_resource: Using crm_failcount instead of crm_attribute(bsc#1074127)
- low: ui_configure: improve do_group completer
- high: scripts: Fix Python 3 migration issues in health, check-uptime (bsc#1071519)
- high: parse: Support new alert syntax (#280) (bsc#1069129)
- low: ui_configure: use filter_keys replace any_startswith
- fix: hb_report: return "" to avoid TypeError
- high: bootstrap: Fix firewall reload command invocation (bsc#1071108)
- high: bootstrap: Encode, not decode (bsc#1070344)
- Fix writing non-ascii chars to log (bsc#1070344)
- Fix is_program(dmidecode) error (bsc#1070344)
- low: ui_configure: fix for 309d2e, remove "id=" in a save way
- low: ra: Don't require deprecated parameters (#321)
- medium: bootstrap: Missing dmidecode on ppc64le (bsc#1069802)
- high: crm_rpmcheck: Fix bytes to str encoding error (bsc#1069294)
- high: bootstrap: Use default IP address for ring0 (bsc#1069142)
- low: cibconfig: replace etree.tostring to xml_tostring for debug/error messages
- low: ui_configure: Improve group/clone/ms completer
- low: bootstrap: Change error/confirm message with specific device name
- medium: bootstrap: fix init vgfs crash if no "-o device" option
- medium: bootstrap: fix init storage crash if no value input
- low: ui_configure: Improve do_clone completer
- medium: scripts: make sure gfs2 can be configured using hawk(bsc#1067123)
- low: ui_configure: fix for db4fc62, not complete if previous' value changed
- low: utils: convert bytes to str(bsc#1067823)
- Low: ui_context: Continue completing when input is an alias
- medium: ui_configure: fix crash when no args given
- high: utils: Use python3 in util scripts (bsc#1067823)
- Low: script: Add nginx script for Hawk
- medium: filter exist args
- high: bootstrap: Use firewall-offline-cmd for firewalld (bsc#1067498)
- medium: hb_report: Verify corosync.conf exists before opening it (bsc#1067456)
- low: config: Collect /var/log/ha-cluster-bootstrap.log (bsc#1067438)
- medium: bootstrap: Avoid SSH to localhost (bsc#1067324)
- low: bootstrap: Clarify removal warning
- low: bootstrap: Avoid printing None instead of NTP service name
- high: bootstrap: Fix readline error in cluster remove (bsc#1067424)
- low: cibconfig: use refresh instead of reset after commit
- high: bootstrap: revert corosync ports for mcast configuration as well (bsc#1066196)
- high: bootstrap: Revert default corosync port to 5405/5404 (bsc#1066196)
- low: ui_context: reset term when using help command+ctrlC   If dont do this, type "ctrl+C" when using help command will cause   the term lost curses.
- medium: NewCommit: ui_configure: complete for ra actions   * append action items which in agent default actions;   * monitor_Master will be mapped to "monitor role=Master".   * monitor_Slave will be mapped to "monitor role=Slave"   * remove action items which not in default actions   * remove action items which already used   * make sure all of default items can be completed
- medium: ui_configure: Replace compl.null to compl.attr_id where an id is required
- low: utils: Stop using deprecated functionality
- medium: ui_context: Stop completing when an id is required
- low: ui_script: Sort keys when printing JSON
- Updating the exception type used for catching a missing process id.  This change is based on recommendations from @krig regarding handling the base exception class.
- medium: enable add the second heartbeat line for unicast   Changes inlcude:   1. IPv4 & IPv6 support   2. user should specify local IP for ringX_addr when init and join both   3. user input must be one of local IP addresses   4. peer ringX_addr and local ringX_addr must in the same network
- low: bootstrap: change multi-heartbeats as option-mode
- medium: bootstrap: check init options before running   * we can add other option checkings to here later
- medium: ui_corosync: adjust do_push's completer
- low: ui_corosync: adjust do_pull's output hints
- medium: ui_corosync: adjust for do_delnode   * add completer to complete node for delete   * limit to udpu transport
- low: ui_corosync: adjust for do_diff completer   * remove node name which already completed   * limit completing node number to 2
- low: ui_root: add completers for do_status
- Update Dockerfile
- fix exception of xml sort in python3
- make it compatible with python3
- This is a proposed fix for bug 283.  The fix was to change the except object type to IOError when a directory cannot be found due to a process that has terminated.
- medium: bootstrap: Only call firewall-cmd if firewalld is active
- medium: ui_node: node attribute/status-attr is about node attr, not for resources
- low: ordereddict: Use builtin if available
- medium: ui_node: node utilization is about node attr, not for resources
- medium: ui_configure: in modgroup, comlete none when remove for one ra group
- medium: ui_configure: in modgroup, complete none after remove
- medium: ui_configure: in modgroup, add free id and remove id in group
- low: bootstrap: Clarify messages
- low: bootstrap: Improve comments / error messages
- low: bootstrap: Check for firewalld before SuSEfirewall2
- medium: bootstrap: Add support for chrony
- Fix SBD configuration when using SBD device (Fixes #235)
- Detect firewall by checking installed packages
- medium: ui_resource: start stopped resources and stop started resources
- low: bootstrap: simplify the code for checking adminIP
- low: bootstrap: reset dev value when input of dev not valid
- low: bootstrap: catch OSError except instead of crash
- low: bootstrap: give error hints when use sbd without watchdog
- medium: enable add the second heartbeat line for mcast   Changes include:   1. skip second heartbeat configure when number of local networks < 2   2. bindnetaddrs must be different and the gap between ports must larger than 1   3. give different default value for second configuration   4. IPv4 & IPv6 support
- fix: bootstrap: remove cib.xml before corosync.add_node
- medium: bootstrap: adminIP should not be exist before config
- medium: bootstrap: adminIP should not be the network self
- low: main: add hostname in promptstr
- fix: utils.list_cluster_nodes: use "crm_node -l" first
- medium: utils: list_cluster_nodes: read nodes list from cib.xml
- low: ui_node: return False when cibdump2elem return None
- low: ui_cluster: strip "None" when cmd stdout is None
- medium: bootstrap: valid adminIP   The administration virtaul IP must:   1) have a valid IPv4/IPv6 formation   2) belongs one of local networks
- medium: utils: extend "IP/Network" codes for IPv4/IPv6 both
- medium: bootstrap: use strict regrex and valid function for bindnetaddr/mcastaddr
- low: bootstrap: when node joining, it will take a while after init_cluster_local
- low: bootstrap: join_csync2 may take a long while   so, use status_long and status_done to give the hints
- medium: bootstrap: configure with IPv6(unicast)
- medium: bootstrap: configure with IPv6(mcast)   Changes include:   1) use "-I" option stand for IPv6 in ui_cluster   2) totem.ip_version should set as "ipv6"   3) choose one interface which has IPv6 address as default values   4) each node must have an uniqe nodeid when using IPv6,      the nodeid came from IPv6 address in default interface   5) for IPv6 network compute, learn from      https://github.com/tehmaze/ipcalc
- high: bootstrap: expected votes wouldn't update in unicast mode
- medium: bootstrap: disable completion and history when running bootstrap
- low: ui_cluster: change cluster name need restart cluster service
- low: ui_cluster: Add two new lines before add a new node
- medium: bootstrap: run "csync2_update" for all files after new joining node call csync2_remote
- low: config: add "%s" in format
- low: ui_cluster: run command on a specific node
- low: bootstrap: color the input error message
- low: bootstrap: suppress the error message
- low: bootstrap: Improve message when sbd is not installed (bsc#1050427)
- low: bootstrap: Don't rely on ha-cluster-* shortcuts
- low: completers: filter out ms resource when doing promote/demote
- Add missing ')'
- medium: ui_cluster: use get_property instead of get_property_w_default
- low: ui_cluster: show cluster name in cluster status command
- low: help: adjust the help print width     adjust the width between cmd and cmd short description for long cmd name
- low: command: a clear and better way replace for commit 4ac8d4(Improved cd completion)       * code changes happened just in command:_cd_completer function       * on the root level, complete sublevel names after "cd "       * on the sublevel, complete other sublevel path after "cd ../"       * complete sublevel names if this sublevel also have some sublevel names       * prevent '..' complete after every tab
- low: ui_cluster: complete node name once     or the same node name will be completed many times with many "Tab"s
- low: ui_cluster: when have an error for optparse, just return and stay at shell
- low: ui_cluster: when use help option, do not exit, just print help messages and return
- low: doc: add cluster rename info
- medium: ui_cluster: Add cluster rename command   * Update /etc/corosync/corosync.conf with the new name on all nodes   * Change the cluster-name property in the CIB   * Reload the corosync configuration on all nodes(use corosync-cmapctl)
- medium: bootstrap: add callback function to check valid port range
- low: bootstrap: give a confirm message when remove node
- medium: bootstrap: replace 'nodename' to 'seed_host'     because when given a node name which is not configured in cluster, program will crash     and say - UnboundLocalError: local variable 'nodename' referenced before assignment
- low: ui_cluster: add "delete" alias for "remove" option
- low:scripts:health: save health-report when run "crm cluster health"
- medium:command:adjust the 'ls' print width for long option   like 'crm cluster geo-init-arbitrator'
- low:doc:Add help info for cluster enable/disable option
- medium: ui_cluster: Add enable/disable option to enable/disable pacemaker service
- medium: bootstrap: Revert to --clusters as argument name
- low: doc: Correct minor mistakes in documentation
- medium: bootstrap: Rename --clusters to --sites (bsc#1047074)
- low: doc: Clarify --cluster-node parameter to geo-join
- medium: ui_ra: Improve resource agents completion
- medium: ui_context: Make all the options can be completed   Currently, not all the options can be completed by 'Tab', for example:     crm->configure->verify     crm->configure->back     crm->configure->master     crm->cluster->init   Maybe because the subcommand doesn't have completer yet;   Maybe because the subcommand itself is an alias of other command;
- Remove "up/back/end" option at root level
- Improve ls command outputs:   * sorted outputs   * print results column by column, like other complete results
- Improved cd completion:   * on the root level, complete sublevel names after "cd "   * on the sublevel, complete other sublevel path after "cd ../"   * prevent '..' complete after every tab
- medium: bootstrap: Fix watchdog SBD envvars (bsc#1045118)
- medium: scripts: Relax broadcast IP validation (bsc#1044233)
- medium: scripts: Clarify help text for NFS wizard (bsc#1044244)
- high: bootstrap: Add option to enable diskless SBD mode to cluster init (bsc#1045118)
- remove _keywords/_objects/_regtest/_test options from tab completion
- low: bootstrap: Fall back to logging into $TMPDIR/ha-cluster-bootstrap.log
- medium: ui_cluster: Add --force to ha-cluster-remove (bsc#1044071)
- medium: history: Revert preference of messages over ha-log.txt (bsc#1031138)
- Doc: add rules in operations example
- Test: add tests for rules in operations
- Fix: apply new cliformat to regression tests
- Feature: add rules support to operations
- medium: Add support for pacemaker PR#1208
- doc: Document lifetime parameter format
- medium: bootstrap: Make arbitrator argument optional (bsc#1038386)
- doc: geo-join requires --clusters argument (bsc#1037442)
- medium: bootstrap: Check required arguments to geo-join (bsc#1037421)
- medium: bootstrap: Handle failure to fetch config gracefully (bsc#1037423)
- medium: bootstrap: Enable "help geo-init" etc. (bsc#1037417)
- high: cibconfig: Graph file output option was reversed (bsc#1036595)
- medium: scripts/health: Make health script available as wizard (fate#320848) (fate#320866)
- lsb, service, stonith and systemd don't have any providers; so, it shouldn't be completed when type 'tab' after these ra classes.
- remove bindnetaddr for unicast(bsc#1030437)
- medium: bootstrap: Set expected_votes based on actual node count (bsc#1033288)
- low: bootstrap: Fix formatting of confirmation prompt (bsc#1028704)
- low: utils: Use /proc for process discovery
- medium: ui_cluster: Fix init with no arguments (bsc#1028735)
- low: bootstrap: Fix warning for formatting SBD device (bsc#1028704)
- low: utils: is_process did not work
- Allow empty fencing_topology (bsc#1025393)
- doc: Bootstrap howto guide

* Fri Jul 21 2017 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 3.0.1
- low: ui_cluster: when have an error for optparse, just return and stay at shell
- low: ui_cluster: when use help option, do not exit, just print help messages and return
- medium: bootstrap: replace 'nodename' to 'seed_host'     because when given a node name which is not configured in cluster, program will crash     and say - UnboundLocalError: local variable 'nodename' referenced before assignment
- medium: bootstrap: Revert to --clusters as argument name
- Add missing ')'
- medium: bootstrap: Rename --clusters to --sites (bsc#1047074)
- medium: bootstrap: Fix watchdog SBD envvars (bsc#1045118)
- medium: scripts: Relax broadcast IP validation (bsc#1044233)
- medium: scripts: Clarify help text for NFS wizard (bsc#1044244)
- high: bootstrap: Add option to enable diskless SBD mode to cluster init (bsc#1045118)
- medium: ui_cluster: Add --force to ha-cluster-remove (bsc#1044071)
- medium: history: Revert preference of messages over ha-log.txt (bsc#1031138)
- medium: bootstrap: Make arbitrator argument optional (bsc#1038386)
- doc: geo-join requires --clusters argument (bsc#1037442)
- medium: bootstrap: Check required arguments to geo-join (bsc#1037421)
- medium: bootstrap: Handle failure to fetch config gracefully (bsc#1037423)
- medium: bootstrap: Enable "help geo-init" etc. (bsc#1037417)
- high: cibconfig: Graph file output option was reversed (bsc#1036595)
- medium: bootstrap: Set expected_votes based on actual node count (bsc#1033288)
- remove bindnetaddr for unicast(bsc#1030437)
- medium: scripts/health: Make health script available as wizard (fate#320848) (fate#320866)
- low: utils: Use /proc for process discovery
- medium: ui_cluster: Fix init with no arguments (bsc#1028735)
- low: bootstrap: Fix warning for formatting SBD device (bsc#1028704)
- Allow empty fencing_topology (bsc#1025393)

* Tue Jan 31 2017 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 3.0.0
- high: bootstrap: Add bootstrap commands (fate#321114)
- high: logparser: Update transition RE (#168)
- high: scripts: Remove script versions of add/remove/init
- high: utils: Fix typo in tmpf patch (bsc#999683)
- medium: bootstrap: Configure hawk iff package installed
- medium: ui_cluster: Fix broken cluster remove command
- medium: bootstrap: Invoke _remote commands correctly
- medium: bootstrap: adapt firewall handling to other platforms
- medium: ui_cluster: Compatibility mode for old cluster init behavior
- medium: ui_history: Avoid ugly wrapping of diff output
- medium: hb_report: Make sure this never expands to rm -rf /
- medium: hb_report: don't use backticks in local
- low: completers: give the op's hint when type tab after 'op'
- low: bootstrap: Handle None as result from remote command correctly
- low: bootstrap: Avoid warning if known_hosts doesn't exist
- low: bootstrap: Don't check for ptty for _remote stages
- low: ui_cluster: No need to check the cluster stack in requires
- low: ui: Fix vim highlightning support.
- low: ui_script: Fix script list all/names argument handling
- low: cibconfig: Clearer error for duplicate ID (bsc#1009748)
- low: ui_cluster: start/stop don't touch corosync, just pacemaker

* Tue Oct 25 2016 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 2.3.2
- high: history: Quote archive tarball name if it contains spaces (bsc#998959)
- high: history: Prefer /var/log/messages over ha-log.txt (bsc#998891)
- high: parse: Support target pattern in fencing topology
- high: cibconfig: Ensure temp CIB is readable by crm_diff (bsc#999683)
- medium: corosync: Fix missing variable in del-node
- medium: scripts: Drop logrotate check from cluster health
- medium: scripts: Better corosync defaults (bsc#1001164)
- medium: cibconfig: Remove from tags when removing object
- medium: ui_configure: option to obscure passwords
- low: cmd_status: More detail in verify output
- low: crm_pssh: Fix nodenum envvar name
- low: cmd_status: Highlight plural forms (bsc#996806)
- doc: Fix inverted boolean in resource set documentation

* Fri Sep 2 2016 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 2.3.1
- Require Python 2.6+, not 2.7 (bsc#995611) (#152)

* Fri Aug 12 2016 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 2.3.0
- medium: constants: Add missing alerts constants (#150) (bsc#992789)
- high: hb_report: Don't collect logs from journalctl if -M is set (bsc#990025)
- high: hb_report: Skip lines without timestamps in log correctly (bsc#989810)
- low: scripts: Fix use of non-relative import for ra
- medium: tmpfiles: Create temporary directory if non-existing (bsc#981583)
- medium: xmlutil: reduce unknown attribute to warning (bsc#981659)
- high: constants: Add maintenance to set of known attributes (bsc#981659)
- medium: scripts: no-quorum-policy=ignore is deprecated (bsc#981056)
- low: history: fall back to any log file in report root
- medium: history: Report better error when history user is not sudoer (bsc#980924)
- high: history: Store live report in per-user directory (bsc#980924)
- medium: logparser: Fix use-before-declaration error in logparser
- low: utils: Clearer error if permission denied when locking (bsc#980924)
- medium: logparser: Handle read-only access to metadata cache (bsc#980924)
- doc: Add @steenzout to AUTHORS
- fix issue #144 by comparing output line by line (#146)
- fixed version number (#142)
- added crm to scripts (#143)
- doc: sort subcommands in the documentation
- high: parse: Support for event-driven alerts (fate#320855) (#136)
- medium: ui_resource: Add force argument to resource cleanup (bsc#979420)
- high: ui_resource: Improved resource move/clear/locate commands
- medium: ui_resource: Show utilization in output from crm resource scores
- high: utils: Avoid deadlock if DC changes during idle wait (bsc#978480)
- low: scripts: Note SBD recommendation in libvirt script (fate#318320)
- low: scripts: Note SBD recommendation in vmware script (fate#318320)
- high: ui_root: Add crm verify command
- low: hb_report: Fix spurious error on missing events.txt
- medium: hb_report: Fix broken -S option (#137)
- medium: ui_node: Fix crash in node fence command (bsc#974902)
- low: scripts: Better description for sbd
- low: scripts: Preserve formatting in description for vmware wizard
- medium: scripts: Add vmware to data manifest (fate#318320)
- high: scripts: VMware fencing using vCenter (fate#318320)
- low: scripts: Shouldn't set -e here (fate#318320)
- low: parse: Don't validate operation name in parser (bsc#975357)
- low: constants: Add missing reload operation to parser
- medium: ui_node: Fix "crm node fence" (bsc#974902) (#134)
- low: corosync: Recycle node IDs when possible
- low: scripts: Fix watchdog test in sbd-device (fate#318320)
- low: scripts: Only print debug output locally unless there were remote actions
- low: cibconfig: Don't mix up CLI name with XML tag
- low: parser: ignore case for attr: prefix
- medium: scripts: Use os.uname() to find hostname (#128)
- low: history: Don't skip nodes without logs
- low: logparser: Don't crash on nodes without logs
- low: scripts: Need sudo if non-local call
- medium: hb_report: Add timeout to SSH connection (bsc#971690)
- low: scripts: Clean up various scripts
- medium: main: Add -o|--opt to pass extra options for crmsh
- low: command: handle stray regex characters in input
- medium: scripts: SBD wizard which configures SBD itself (fate#318320)
- medium: scripts: Add nfs-utils to list of packages for nfsserver
- medium: scripts: Set sudo and full path for exportfs -v in nfs scripts
- medium: scripts: Don't require sudo for root
- medium: scripts: inline scripts for call actions
- medium: scripts: Simplify SBD script (bsc#968076) (fate#318320)
- low: logparser: Add cib info to __meta for hawk
- low: hb_report: Suggest user checks timeframe on empty logs (bsc#970823)
- medium: ui_node: Add crm node server command
- medium: hb_report: Use server attribute for remote nodes if set (bsc#970819)
- low: ui_resource: alias show to get
- high: history: Faster log parsing (bsc#920278)
- low: log_patterns_118: Add captures to log patterns for tagging (bsc#970278)
- medium: crm_pssh: Fix live refresh of journalctl logs (bsc#970931)
- low: hb_report: Warn if generated report is empty (bsc#970823)
- low: hb_report: Print covered time span at exit (bsc#970823)
- low: logtime: Improve performance of syslog_ts (bsc#970278)
- low: scripts: Fix error in service action
- low: history: use os.listdir to list history sessions
- medium: ui_node: Use stonith_admin -F to fence remote nodes (bsc#967907)
- low: ui_node: Less cryptic query when fencing node
- low: config: Messed up previous fix (#119)
- low: config: Clean up libdir configuration (#119)
- medium: config: make multiarch dependency a dynamic include (#119)
- high: ui_configure: Fix commit force (#120)
- medium: hb_report: Don't collect logs on non-nodes (bsc#959031)
- medium: ui_configure: Only wait for DC if resources were stopped (#117)
- low: Fix title style vs. sentence style in cluster scripts (bsc#892108)
- medium: command: Disable fuzzy matcher for completion (#116)
- Merge pull request #115 from rikkotec/patch-queue/remove-fix-for-debian
- medium: corosync: added optional parameter [name] to "corosync add-node" function
- medium: constants: clone-min meta attribute (new in Pacemaker 1.1.14)
- medium: cibconfig: add and|or filter combinators to influence filtering (fate#320401)
- high: scripts: fix broken cluster init script (bsc#963135)
- high: scripts: Add LVM on DRBD cluster script (bsc#951132)
- high: scripts: Add NFS on LVM and DRBD cluster script (bsc#951132)
- medium: ui_configure: Rename show-property to get-property
- high: scripts: Improved OCFS2 cluster script (bsc#953984)
- medium: scripts: Updated SBD cluster script
- high: history: Parse log lines without timestamp (bsc#955581)

* Fri Jan 15 2016 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 2.2.0
- medium: history: Fix live report refresh (bsc#950422) (bsc#927414)
- medium: history: Ignore central log
- medium: cibconfig: Detect false container children
- low: clidisplay: Avoid crash when colorizing None
- medium: scripts: Load single file yml scripts
- medium: scripts: Reformat scripts to simplified form
- medium: ui_history: Add events command (bsc#952449)
- low: hb_report: Drop function from event patterns
- high: cibconfig: Preserve failure through edit (bsc#959965)
- high: cibconfig: fail if new object already exists (bsc#959965)
- medium: ui_cib: Call crm_shadow in batch mode to avoid spawning subshell (bsc#961392)
- high: cibconfig: Fix XML import bug for cloned groups (bsc#959895)
- high: ui_configure: Move validate-all validation to a separate command (bsc#956442)
- high: scripts: Don't require scripts to be an array of one element
- medium: scripts: Enable setting category in legacy wizards (bnc#957926)
- high: scripts: Don't delete steps from upgraded wizards (bnc#957925)
- high: ra: Only run validate-all if current user is root
- high: cibconfig: Call validate-all action on agent in verify (bsc#956442)
- high: script: Fix issues found in cluster scripts
- high: ui_ra: Add ra validate command (bsc#956442)
- low: resource: Fix unban alias for unmigrate
- high: ui_resource: Add constraints and operations commands
- high: ui_resource: Enable start/stop/status for multiple resources at once (bsc#952775)
- high: scripts: Conservatively verify scripts that modify the CIB (bsc#951954)
- high: xmlutil: Order is significant in resource_set (bsc#955434)
- medium: scripts: Lower copy target to string
- doc: configure load can read from stdin
- medium: script: (filesystem) create stopped (bsc#952670)
- medium: scripts: Check required parameters for optional sub-steps
- high: scripts: Eval CIB text in correct scope (bsc#952600)
- medium: utils: Fix python 2.6 compatibility
- medium: ui_script: Tag legacy wizards as legacy in show (bsc#952226)
- medium: scripts: No optional steps in legacy wizards (bsc#952226)
- high: utils: Revised time zone handling (bsc#951759)
- high: report: Fix syslog parser regexps (bsc#951759)
- low: constants: Tweaked graph colours
- high: scripts: Fix DRBD script resource reference (bsc#951028)
- low: constants: Tweaked graph colors
- medium: report: Make transitions without end stretch to 2525
- high: utils: Handle time zones in parse_time (bsc#949511)
- medium: hb_report: Remove reference to function name in event patterns (bsc#942906)
- medium: ui_script: Optionally print common params
- medium: cibconfig: Fix sanity check for attribute-based fencing topology (#110)
- high: cibconfig: Fix bug with node/resource collision
- high: scripts: Determine output format of script correctly (bsc#949980)
- doc: add explanatory comments to fencing_topology
- doc: add missing backslash in fencing_topology example
- doc: add missing <> to fencing_topology syntax
- low: don't use deprecated crm_attribute -U option
- doc: resource-discovery for location constraints
- high: utils: Fix cluster_copy_file error when nodes provided
- low: xmlutil: More informative message when updating resource references after rename
- doc: fix some command syntax grammar in the man page
- high: cibconfig: Delete constraints before resources
- high: cibconfig: Fix bug in is_edit_valid (bsc#948547)
- medium: hb_report: Don't cat binary logs
- high: cibconfig: Allow node/rsc id collision in _set_update (bsc#948547)
- low: report: Silence tar warning on early stream close
- high: cibconfig: Allow nodes and resources with the same ID (bsc#948547)
- high: log_patterns_118: Update the correct set of log patterns (bsc#942906)
- low: ui_resource: Silence spurious migration non-warning from pacemaker
- medium: config: Always fall back to /usr/bin:/usr/sbin:/bin:/sbin for programs (bsc#947818)
- medium: report: Enable opening .xz-compressed report tarballs
- medium: cibconfig: Only warn for grouped children in colocations (bsc#927423)
- medium: cibconfig: Allow order constraints on group children (bsc#927423)
- medium: cibconfig: Warn if configuring constraint on child resource (bsc#927423) (#101)
- high: ui_node: Show remote nodes in crm node list (bsc#877962)
- high: config: Remove config.core.supported_schemas (bsc#946893)
- medium: report: Mark transitions with errors with a star in info output (bsc#943470)
- low: report: Remove first transition tag regex
- medium: report: Add transition tags command (bsc#943470)
- low: ui_history: Better error handling and documentation for the detail command
- low: ui_history: Swap from and to times if to < from
- medium: cibconfig: XML parser support for node-attr fencing topology
- medium: parse: Updated syntax for fencing-topology target attribute
- medium: parse: Add support for node attribute as fencing topology target
- high: scripts: Add enum type to script values
- low: scripts: [MailTo] install mailx package
- low: scripts: Fix typo in email type verifier
- high: script: Fix subscript agent reference bug
- low: constants: Add meta attributes for remote nodes
- medium: scripts: Fix typo in lvm script
- high: scripts: Generate actions for includes if none are defined
- low: scripts: [virtual-ip] make lvs_support an advanced parameter
- medium: crm_pssh: Timeout is an int (bsc#943820)
- medium: scripts: Add MailTo script
- low: scripts: Improved script parameter validation
- high: parse: Fix crash when referencing score types by name (bsc#940194)
- doc: Clarify documentation for colocations using node-attribute
- high: ui_script: Print cached errors in json run
- medium: scripts: Use --no option over --force unless force: true is set in the script
- medium: options: Add --no option
- high: scripts: Default to passing --force to crm after all
- high: scripts: Add force parameter to cib and crm actions, and don't pass --force by default
- low: scripts: Make virtual IP optional [nfsserver]
- medium: scripts: Ensure that the Filesystem resource exists [nfsserver] (bsc#898658)
- medium: report: Reintroduce empty transition pruning (bsc#943291)
- low: hb_report: Collect libqb version (bsc#943327)
- medium: log_patterns: Remove reference to function name in log patterns (bsc#942906)
- low: hb_report: Increase time to wait for the logmark
- high: hb_report: Always prefer syslog if available (bsc#942906)
- high: report: Update transition edge regexes (bsc#942906)
- medium: scripts: Switch install default to false
- low: scripts: Catch attempt to pass dict as parameter value
- high: report: Output format from pacemaker has changed (bsc#941681)
- high: hb_report: Prefer pacemaker.log if it exists (bsc#941681)
- medium: report: Add pacemaker.log to find_node_log list (bsc#941734)
- high: hb_report: Correct path to hb_report after move to subdirectory (bsc#936026)
- low: main: Bash completion didn't handle sudo correctly
- medium: config: Add report_tool_options (bsc#917638)
- high: parse: Add attributes to terminator set (bsc#940920)
- Medium: cibconfig: skip sanity check for properties other than cib-bootstrap-options
- medium: ui_script: Fix bug in verify json encoding
- low: ui_script: Check JSON command syntax
- medium: ui_script: Add name to action output (fate#318211)
- low: scripts: Preserve formatting of longdescs
- low: scripts: Clearer shortdesc for filesystem
- low: scripts: Fix formatting for SAP scripts
- low: scripts: add missing type annotations to libvirt script
- low: scripts: make overridden parameters non-advanced by default
- low: scripts: Tweak description for libvirt
- low: scripts: Strip shortdesc for scripts and params
- low: scripts: Title and category for exportfs
- high: ui_script: drop end sentinel from API output (fate#318211)
- low: scripts: Fix possible reference error in agent include
- low: scripts: Clearer error message
- low: Remove build revision from version
- low: Add HAProxy script to data manifest
- medium: constants: Add 'provides' meta attribute (bsc#936587)
- medium: scripts: Add HAProxy script
- high: hb_report: find utility scripts after move (bsc#936026)
- high: ui_report: Move hb_report to subdirectory (bsc#936026)
- high: Makefile: Don't unstall hb_report using data-manifest (bsc#936026)
- medium: report: Fall back to cluster-glue hb_report if necessary (bsc#936026)
- medium: scripts: stop inserting comments as values
- high: scripts: subscript values not required if subscript has no parameters / all defaults (fate#318211)
- medium: scripts: Fix name override for subscripts (fate#318211)
- low: scripts: Clean up generated CIB (fate#318211)

* Sat Jun 13 2015 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Pre-release 2.2.0-rc3
- high: Merge rewizards development branch (fate#318211)
  (fate#318384) (fate#318483) (fate#318482) (fate#318550)

- Summary of some of the changes included in the merge of
  the rewizards branch:

  + Colorized status output
  + New and more capable cluster script implementation
  + Deprecated the crmsh templates (not the CIB templates,
    the configuration templates)
  + Implemented a JSON API interface to the cluster scripts
    for hawk to use instead of having its own wizards
  + Handlebars-like templating language for cluster scripts
    that modify the CIB
  + Collect metadata from resource agents to avoid duplication
    in configuration scripts
  + Extended validation support for parameter values
  + New cluster scripts:

   - Stonith: SBD and libvirt
   - Apache web server
   - NFS server
   - cLVM
   - Databases: MySQL / MariaDB / Oracle / DB2
   - SAP
   - OCFS2
   - etc.

  + Radically simplified automake and autoconf setup
  + Improved completion performance
  + Added pygment lexers used by the history guide as stand-alone
    python module in contrib/
  + Removed dependency on corosync for regression test suite
  + Sort topics and commands in help output
  + Hide internal commands in help and ls
  + Clearer debug output when simulating
  + Cleaned up and fixed documentation bugs

- high: cmd_status: Colorize status output
- low: cmd_status: Add full argument to status
- low: scripts: Handle local runs even if nodelist doesn't contain local node
- low: scripts: Stricter regexp for identifiers
- doc: Fix unterminated block
- low: command: Hide internal commands from ls
- low: script: Rename describe to show
- doc: Document the script JSON API
- low: handles: Clean up special values
- medium: help: Sort topics and commands in help output
- doc: scripts: Basic documentation for the cluster scripts
- doc: Describe website compilation process in development.md
- contrib: Add pygment lexers used by the history guide
- build: Add update-data-manifest.sh to generate datadir file list
- medium: ui_script: Add JSON API
- medium: config: add config.path.hawk_wizards
- medium: handles: Fix error in strict parameter handling
- scripts: Add placeholders for some basic scripts
- WIP: in-progress notes etc.
- doc: Update reference to parallax in scripts documentation
- low: handles: Also allow # and $ in identifiers
- medium: handles: Replace magic value with callables
- medium: handles: {{^feature}}invert blocks{{/feature}}
- medium: resource: Add ban command
- medium: ui_root: Make the cibstatus command available directly from the root
- medium: hb_report: Collect logs from pacemaker.log
- low: crm: Detect and report use of python 3
- doc: Link to japanese translation of Getting Started
- medium: crm_pkg: Fix cluster init bug on RH-based systems
- medium: crm_gv: Improved quoting of non-identifier node names (bsc#931837)
- medium: crm_gv: Wrap non-identifier names in quotes (bsc#931837)
- low: Fix references to pssh to refer to parallax
- medium: report: Try to load source as session if possible (bsc#927407)
- low: xmlutil: Update comment to match the code
- Merge pull request #91 from krig/missing-transitions
- high: report: New detection to fix missing transitions (bnc#917131)
- medium: ui_configure: Add resource as an alias for primitive
- medium: parse: Allow implicit initial for groups as well
- medium: parse: More robust implicit initial parser
- doc: website: Embedded hawk video in announcement
- doc: news: News update for 2.1.4
- Merge pull request #95 from dmuhamedagic/history-guide
- Medium: doc: add history guide
- Low: doc: simplify to make it work with python 2.6
- Medium: hb_report: use faster zypper interface if available
- medium: ui_configure: Wait for DC when removing running resource
- Merge pull request #94 from rikkotec/patch-queue/debian-multiarch-compat
- Fix CFLAGS for supporting triplet paths with pacemaker
- low: schema: Don't leak PacemakerError exceptions (#93)
- high: ui_cluster: Add copy command
- doc: Update the documentation for the upgrade command
- parse: Don't require trailing colon in tag definitions
- high: crm_pssh: Explicitly set parallax inline option (krig/parallax#1)
- doc: Add quick links to website
- high: ui_configure: Add show-property command
- medium: utils: Allow 1/0 as boolean values for parameters
- doc: Correct the URL to point to the new upstream repository
- doc: Add announcement for release 2.1.3
- low: hb_report: Use crmsh config to find pengine/cib dirs (bsc#926377)
- low: ui_options: add alias list for show
- medium: cliformat: Escape double-quotes in nvpair values
- high: parse: Don't allow constraints without applicants
- medium: parse: Disallow location rules without resources
- medium: ui_template: Make new command more robust (bnc#924641)
- high: fix typo in previous commit
- high: ui_node: Don't fence node in clearstate (boo#912919)
- low: Replaced README with README.md
- medium: ui_template: Always generate id unless explicitly defined (boo#921028)
- high: cibconfig: Derive id for ops from referenced resource name (boo#921028)
- medium: templates: Clearer descriptions for editing templates (boo#921028)
- high: ui_context: Wait for DC after commit, not before (#85)
- high: cibconfig: Don't delete valid tickets when removing referenced objects (bnc#922039)
- high: ui_configure: Remove acl_group command (bnc#921056)
- doc: Document changes to template list|new
- medium: help: Teach help to fuzzy match topics
- doc: Describe the shorthand syntax for commands
- low: command: Use fuzzy match for sublevel check
- medium: command: Fuzzy match command names
- low: ui_context: Use true command name when reporting errors
- doc: Move the main crmsh repository to the ClusterLabs organization on github
- Merge pull request #82 from dmuhamedagic/sync_hb_report
- Low: hb_report: add -X option for extra ssh options
- Merge pull request #81 from lge/for-krig
- fix: catch exception if schema file does not exist
- low: allow pacemaker 1.0 version detection
- low: allow (0,1) as option booleans
- medium: cibconfig: Allow removal of non-existing elements if --force is set
- medium: cibconfig: Allow delete of objects that don't exist without returning error code
- medium: cibconfig: If a change results in no diff, exit silently
- low: pacemaker: Remove debug output
- medium: schema: Remove extra debug output
- medium: schema: Test if node type is optional via schema
- medium: parse: Treat pacemaker-next schema as 2.0+
- low: cibconfig: Improved debug output when schema change fails
- medium: cibconfig: Fix inverted logic causing spurious warning
- Merge pull request #80 from dmuhamedagic/schema-update
- Medium: cibconf: preserve cib user attributes
- medium: ra: Handle non-OCF agent meta-data better
- medium: config: Fix case-sensitivity for booleans
- medium: report: Include transitions with configuration changes (bnc#917131)
- medium: xmlutil: Improved check for related elements
- doc: Documentation for show related:<obj>
- medium: report: Convert RE exception to simpler UI output
- medium: cibconfig: add show related:<obj>
- doc: Add link to clusterlabs.org
- medium: parse: Encode unicode using xmlcharrefreplace in parser
- medium: parse: nvpair attributes with no value = <nvpair name=".."/> (#71)
- medium: ui_cluster: Add diff command (bnc#914525)
- doc: website: Fix changelog in news entry
- doc: website: Add news release for 2.1.2
- medium: report: Fall back to end_ts = start_ts
- medium: util: Don't fall back to current time
- high: xmlutil: Treat node type=member as normal (boo#904698)
- low: xmlutil: logic bug in sanity_check_nvpairs
- medium: xmlutil: Modify sort order of object types
- medium: cibconfig: Use orderedset to avoid reordering bugs (#79)
- medium: orderedset: Add OrderedSet type
- medium: cibconfig: Detect v1 format and don't patch container changes (bnc#914098)
- medium: constants: Update transition regex (#77)
- Revert "high: xmlutil: Reorder elements only if sort_elements is set (#78)"
- low: ui_options: Add underscore aliases for legacy options
- high: xmlutil: Reorder elements only if sort_elements is set (#78)
- medium: cibconfig: Strip digest from v1 diffs (bnc#914098)
- Merge pull request #77 from krig/mail-patchset
- medium: crm_pssh: Make tar follow symlinks
- medium: constants: Fix transition start detection
- medium: crm_pssh: Handle incomplete Option argument
- high: crm_pssh: Use correct Task API in do_pssh (bnc#913261)
- medium: cibconfig: Break infinite edit loop if --force is set
- Merge pull request #76 from dmuhamedagic/log-patterns
- high: utils: Locate binaries across sudo boundary (bnc#912483)
- low: config: Convert NoOptionError to ValueError
- low: msg: Add note on modifying supported schemas
- medium: config: Add 2.3 to list of supported schemas
- medium: utils: crm_daemon_dir is added to PATH in envsetup (#67)

* Fri Jan  9 2015 Kristoffer Grönlund <kgronlund@suse.com> and many others
- medium: ui_resource: Set probe interval 0 if not set (bnc#905050)
- doc: Document probe op in resource trace (bnc#905050)
- low: ui_resource: --reprobe and --refresh are deprecated (bnc#905092)
- doc: Document deprecation of refresh and reprobe (bnc#905092)
- medium: parse: Support resource-discovery in location constraints
- medium: pacemaker: Support pacemaker-next as schema
- medium: cibconfig: Allow unsupported schemas with warning
- medium: ra: Use correct path for crmd (#67)
- medium: cmd_status: Show pending if available, enable extra options
- high: config: Fix path to system-wide crm.conf (#67)
- medium: config: Fall back to /etc/crm/crmsh.conf (#67)
- low: cliformat: Colorize id: as identifier (boo#905338)
- medium: cibconfig: Revised CIB schema handling
- medium: ui_configure: Add replace option to commit
- medium: cibconfig: Don't bump epoch if stripping version
- medium: ui_context: Lazily import readline
- medium: ui_configure: selectors in save command
- medium: config: Add core.ignore_missing_metadata (#68) (boo#905910)
- Medium: config: add alwayscolor to display output option
- doc: Clarify documentation for property (boo#905637)
- doc: Add documentation section describing rule expressions (boo#905637)
- doc: Link to documentation on rule expressions
- medium: Allow removing groups even if is_running (boo#905271)
- medium: cibconfig: Delete containers first in edits (boo#905268)
- doc: Improved documentation for show and save
- doc: Add note about modeline for vim syntax
- medium: ui_history: Fix crash using empty object set
- utils: append_file: open destination in append-mode (boo#907528)
- medium: parse: Allow nvpair with no value using name= syntax (#71)
- medium: parse: Enable name[=value] for nvpair (#71)
- Low: term: get rid of annying ^O in piped-to-less-R output
- high: parse: Implicit initial parameter list
- high: crm_pssh: Switch to python-parallax over pssh (bnc#905116)
- low: report: Fix references to PSSH
- low: report: Delay Report creation until use
- medium: utils: Check if path basename is less (#74)
- medium: ui_options: Accept prefix or suffix of option as argument
- medium: Remove CIB version in case no --no-version.
- low: cibconfig: Use LXML to remove version data more robustly (#75)
- low: crm_gv: Avoid crashing if passed None in my_edge
- low: cibconfig: Protect against dereferencing None when building graph

* Tue Oct 28 2014 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Pre-release 2.2.0-rc1
- cibconfig: Clean up output from crm_verify (bnc#893138)
- high: constants: Add acl_target and acl_group to cib_cli_map (bnc#894041)
- medium: cibconfig: Add set command
- doc: Rename asciidoc files to %.adoc
- high: parse: split shortcuts into valid rules
- medium: Handle broken CIB in find_objects
- high: scripts: Handle corosync.conf without nodelist in add-node (bnc#862577)
- low: template: Add 'new <template>' shortcut
- low: ui_configure: add rm as alias for delete
- low: ui_template: List both templates and configs by default
- medium: config: Assign default path in all cases
- low: main: Catch any ValueErrors that may leak through
- doc: Update TODO
- low: corosync: Check tools before use
- low: ui_ra: Don't crash when no OCF agents installed
- low: ra: Add systemd-support to RaOS
- doc: Updated documentation
- doc: Handle command names with underscore
- doc: Add tool to sort command list in documentation
- doc: Sort command list in documentation alphabetically
- high: cibconfig: Generate valid CLI syntax for attribute lists (bnc#897462)
- high: cibconfig: Add tag:<tag> to get all resources in tag
- low: report: Sort list of nodes
- low: ui_cluster: More informative error message
- low: main: Replace getopt with optparse
- high: parse: Allow empty attribute values in nvpairs (bnc#898625)
- high: ui_maintenance: Add maintenance sublevel (bnc#899234)
- medium: rsctest: Add basic support for systemd services
- medium: ui_maintenance: Combine action and actionssh into a single command
- low: rsctest: Better error message for unsupported action
- low: cibconfig: Improve wording of commit prompt
- high: cibconfig: Delay reinitialization after commit
- doc: Add website template for the nongnu page
- medium: main: Disable interspersed args
- low: cibconfig: Fix vim modeline
- high: report: Find nodes for any log type (boo#900654)
- high: hb_report: Collect logs from journald (boo#900654)
- doc: Clarified note for default-timeouts
- doc: Remove reference to crmsh documentation at clusterlabs.org
- doc: start-guide: Fix version check
- medium: xmlutil: Use idmgmt when creating new elements (bnc#901543)
- doc: cibconfig: Add note on inner ids after rename
- high: cibconfig: Don't crash if given an invalid pattern (bnc#901714)
- high: xmlutil: Filter list of referenced resources (bnc#901714)
- medium: ui_resource: Only act on resources (#64)
- medium: ui_resource: Flatten, then filter (#64)
- high: ui_resource: Use correct name for error function (bnc#901453)
- high: ui_resource: resource trace failed if operation existed (bnc#901453)

* Mon Jun 30 2014 Kristoffer Grönlund <kgronlund@suse.com> and many others
- Release 2.1
- Add atom feed to development page
- Medium: hb_report: dot is not illegal in file names (bnc#884079, debian#715391)
- Low: history: remove existing report directory on refresh
- medium: ui_history: Print source if given no argument (bnc#883437)
- Medium: hb_report: update interface to zypper (bnc#883186)
- Medium: hb_report: support logs with varied timestamps (bnc#883186)
- Low: hb_report: getstampproc is global (bnc#883186)
- Low: hb_report: gdb debug symbols output change (bnc#883186)
- Low: hb_report: don't restrict debuginfo to cluster stack binaries (zypper) (bnc#883186)
- high: ui_history: Lazily fetch report data on command (bnc#882959)
- medium: report: Make setting report period more robust (bnc#882959)
- medium: ui_resource: Remove empty attrlists when overriding children (bnc#882655)
- high: cibconfig: Retain empty attribute sets (bnc#882655)
- Low: report: unpack tarball if it's newer than the existing directory
- Low: report: get node list based on collected logs, not from cib
- Low: report: test for ha-log.txt instead of cib.txt when listing nodes
- Low: report: don't warn on extra nodes in the report
- medium: ui_configure: Nicer error when pacemaker is not running (bnc#882475)
- medium: scripts: configure SSH in cluster init (bnc#882476)
- medium: ui_assist: add template command (bnc#882477)
- medium: cliformat: Fix CLI formatting for rules and id-refs
- doc: Update documentation for location constraints (bnc#873781)
- doc: Document interval suffixes (bnc#873677)
- medium: ui_node: Fix display of node attributes
- medium: parse: Allow remote as node type
- low: cliformat: Don't show extraneous id for acl rules
- high: cibconfig: Fix bug when copying nvpairs (bnc#881369)
- high: parse: Try to retain ordering if possible (bnc#880371)
- high: cibconfig: Enable use of v2 patches in Pacemaker (bnc#880371)
- medium: pacemaker: Don't hardcode list of supported schemas
- Medium: resource: modify some command wait options (bnc#880982)
- high: parse: Support for ACL schema 2.0 (bnc#880371)
- medium: schema: Fix typo in test_schema()
- medium: parse: Allow empty property sets (bnc#880632)
- medium: ui_resource: Also trace promote/demote for multistate resources
- medium: ui_resource: allow trace of resource without specific operation
- medium: ui_resource: Make op an optional argument to trace/untrace
- low: ui_resource: Allow untrace without explicit interval
- high: cibconfig: adjust attributes when adding operations (bnc#880052)
- high: parse: Support id-ref in nvpairs (fate#316118)
- low: ui_configure: Add --force flag to configure delete
- medium: xmlutil: Limit xpath search to children (bnc#879419)
- medium: ui: Fix argument check in resource commands (gh#crmsh/crmsh#29)
- high: xmlutil: Include remote nodes in nodelist (bnc#878112)
- medium: cibconfig: Detect broken child relationship (bnc#878112)
- high: cibconfig: Ban containers stealing children (bnc#878112)
- low: command: Add -h and --help as aliases to help
- high: parse: Allow role in rule-based location constraints (bnc#878128)
- medium: report: Return to handling timestamps internally (bnc#877495)
- medium: ui_resource: Fix race in start/stop/manage/unmanage (bnc#877640)
- medium: parse: Allow empty attribute lists
- medium: cibconfig: Fix uses of add_operation
- medium: report: Make regexp groups non-capturing to avoid limit (bnc#877484)
- medium: doc: Document rules in attribute lists (bnc#865292)
- medium: constants: Rename cluster attribute to cluster-name (fate#316118)
- medium: idmgmt: Fix id assignment and update regression tests (bnc#865292)
- medium: cibconfig: Enable score for instance_attributes (bnc#865292)
- high: cibconfig: Support rules in attribute lists (bnc#865292)
- low: cibconfig: Better error when referring to non-existant template
- medium: scripts: Handle percent characters in script output (bnc#876882)
- pacemaker: Support 2.0 schema
- vars: Rename property: s/site/cluster (fate#316118)
- Medium: hb_report: fix ssh passwords again (bnc#867365)
- vars: Add site to list of extra cluster properties (fate#316118)
- parse: Fix check for action/role in resource set parser (#14)
- report: More problems with datetime (bnc#874162)
- report: Resolve datetime/timestamp mixup (bnc#874162)
- utils: Handle datetime objects in shorttime/shortdate (bnc#874162)
- main: Fix reference before assignment (#7)
- crm: Check and complain about python version < 2.6 (#11)
- parse: Unify API for err(), fix error
- Fix garbage characters in prompt (issue#7)
- Medium: cibconf: add comments in the right order (bnc#866434)
- site: pass --force flag through to crm_ticket (bnc#873200)
- Low: report: Use subsecond precision if possible (bnc#872932)
- Low: hb_report: pcmk lib changed permissions (bnc#872958)
- Low: history: set colours for all nodes found (bnc#872936)
- ui_resource: Allow setting meta attributes on tags (fate#315101)
- ui_configure: tag command  (fate#315101)
- parse: Support cib object tags (fate#315101)
- cibconfig: Support filename-style globs in show/edit (bnc#864346)
- ui_resource: Only search in top-level (bnc#865024)
- ui_resource: Don't create extra nvpairs (bnc#865024)
- utils: Don't crash on missing reply to y/n question
- Allow building crmsh without PyYAML
- Support for pacemaker-1.3 RNG schema

* Thu Apr 4 2014 Kristoffer Grönlund <kgronlund@suse.com> and many others
- release 2.0
- Improve output from history explorer when using a crm_report-generated
  report (bnc#870886)
- Add journal.log to interesting log files (bnc#870886)
- make sanity check of node name not case sensitive
- hb_report: Don't use deprecated ifconfig (bnc#871089)
- parse: Clean up the CLI syntax display
- ra: display without class:provider: prefix if possible
- Better args error handling in configure load/save (bnc#870654)
- ui_context: Correctly check end_game() return value (bnc#868533)
- command: Propagate error from auto-commit (bnc#868533)
- crm_pkg: Add --no-refresh to zypper commands
- scripts: configure firewall to open cluster ports (bnc#868008)
- scripts: Improved debug output from cluster scripts (bnc#866636)
- main: Better descriptions for -d and -R flags.
- utils: Nicer warning when crm_simulate fails
- ui: Don't call nonexistent function on unsupported cluster stack
- xmlutil: fencing-topology used broken comparison (bnc#866639)
- parse: More liberal parsing of role assignment in constraint rules
- scripts: corosync uses mcastport - 1 (bnc#868008)
- utils: ask() did not respect force flag in all cases (bnc#868007)
- xmlutil: Compare attribute dictionaries properly
- xmlutil: Fix attribute handling in XML comparison function
- xmlutil: Fix sorting of attribute keys in xml_cmp
- xmlutil: Sanitize the CIB a bit less aggressively (bnc#866434)
- xmlutil: in xml_cmp, s/print/common_debug/
- xmlutil: Handle XML comments properly in xml_cmp
- xmlutil: order-independent XML comparison (bnc#866434)
- scripts: don't modify system unless necessary (bnc#866569)
- xmlutil: don't crash on degenerate colocations
- scripts: enable trace logging for cluster scripts (bnc#866636)
- ui_cluster: use crm_mon -bD1 in wait_for_cluster (bnc#866635)
- scripts: Disable corosync.log by default (bnc#866569)
- scripts: Open appropriate ports in firewall (bnc#866569)
- scripts: Configure quorum based on node count (bnc#866569)
- utils: Record all calls in regression test output (bnc#862383)
- ui_resource: Add maintenance command (bnc#863071)
- parse: Fix resource sets, once and for all (savannah#41617)
- scripts: Disable strict host key checking (bnc#864238)
- hb_report: Fix incorrect quotes (bnc#863816)
- cibconfig: do not format xml tags when requested (bnc#863746)
- cibconfig: Handle non-string arguments (bnc#863736)
- ui_root: Rename root level to 'root' (bnc#863583)
- corosync: Allow tabs in corosync.conf (bnc#862577)
- parse: Fix sequential=true for resource sets (bnc#862334)
- cibconfig: fencing_topology warning with stonith templates
  (savannah#41414)
- xmlutil: rsc_template has no provider attribute (savannah#41410)
- ra: Infer provider from RA name (bnc#860754)
- ui_options: add missing documentation for options set (bnc#860585)
- ui_cib: correct name of cib import (bnc#860584)
- ui_ra: Fix problems with ra info command (bnc#860583)
- ui_resource: Fix crash in resource cleanup (bnc#859570)
- ui_assist: Add assist sublevel (fate#314917)
- hb_report: Show progress when processing many transitions
- report: Open reports output by crm_report (fate#316330)
- hb_report: Display as 'report'
- report: Move report creation to root
- ui_report: Fix invocation of hb_report
- hb_report: call corosync-blackbox, not corosync-fplay
- help: Bug in delayed loading of help text
- corosync: Better parser and more commands
- scripts: Set PasswordAuthentication=no
- ui_resource: Fix bug in resource restart
- ui_cluster: Revised cluster status
- msg: Don't print ok/info to stderr
- ui_script: Allow --nodes='..', not only --nodes '..'
- scripts: Cluster scripts (fate#316464, fate#309206, fate#316332)
- config: Validate boolean values correctly
- main: Seed random generator on startup
- main: More informative error on start failure
- cluster: Use crm_node -l for node list
- crm_pssh: Limit scope of glob in pssh/get_output
- ui_context: Less repetitive error message on unknown command
- ui_cib: Fix typo in sublevel name: cib.cibconfig -> cib.cibstatus
- help: Return error if help topic is not found (bug#40821)
- main: Return more useful error codes
- crm_gv: Support rsc_template in graphs (bnc#850159)
- cibconfig: Updated fix for configure load method (bnc#841764)
- parse: Correct recognition of kind in order constraints
- history: Fix incorrect argument to level check
- report: Fix broken call to hb_report
- parse: Stricter parsing of resource names
- parse: Resource sets in location constraints (fate#315158).
- utils: Enable cibadmin -P for 1.1.11
- parse: rsc_template is not recognized by parser (bnc#854562)
- vars: Add remote-node as resource attribute (bnc#854552)
- cibconfig: Add missing config import
- hb_report: Prefer generating .bz2 archives (bnc#854060)
- hb_report: Add support for xz compression (bnc#854060)
- cluster: Implement run using pssh
- ui_cluster: Cluster sublevel implementation
- configure: Improved completion for group, clone, ms (bnc#845339)
- config: Set OCF_ROOT in environ structure (used by ra.py)
- main: Tab completion for multi-line statements BUG: bnc#845339
- bash_completion: Add completion installation to spec file
- ui_resource: Added new resource scores command
- command: Improved default help for commands
- crm_gv: Limit graph size to fit on A4
- config: New configuration file format
- parse: Support role= in rsc_location
- msg: Add colors to message output
- templates: Update OCFS2 template.
- ui_context: Fix readline completion for empty input
- ui_configure: Clearer error messages
- ui_context: Wait if in transit
- ui_configure: Clearer error messages
- Enable colorized prompt
- ui_context: Allow ui stack modifications
- ui_configure: Completion + help for primitive
- ui_context: Fix completion with no args to command
- command: Fix case with no args to completer
- ui_context: Improve completion
- ui_ra: Updated completion for info
- main.compgen: Adapt output to bash completion
- bash_completion: Improve colon-handling
- main: Fix issues with ctrl+C and profiling
- ui_options: add option to print single user preference values
- bash_completion: fix path to crm
- Clean up contextual_help
- Fix help with no argument
- ui_context: Allow commands that manipulate the stack
- ui_context: Fix stack handling
- ui_configure: Add missing return statement
- Check if command failed
- Initial bash completion / completion framework
- Add report level to wrap crmsh_hb_report
- UI makeover
- help: Rewritten help subsystem
- hb_report: exit early if which(1) is missing
- ui: anonymous temporary shadow CIBs
- cibconf: fix two fencing top issues (savannah#40173)
- node: clear state new way since pcmk 1.1.8 (bnc#843699)
- Integrate hb_report as part of crmsh

* Tue Sep 24 2013 Kristoffer Grönlund <kgronlund@suse.com>, Dejan Muhamedagic <dejan@suse.de>, and many others
- release 1.2.6
- cibconf: fix removing cluster properties in edit (bnc#841764)
- history: improve setting history source
- cibconf: fix rsc_template referencing (savannah#40011)
- rsctest: add support for STONITH resources
- help: fix help for alias commands
- history: show and allow completion of all primitives and not only
  top level resources such as groups
- site: add missing completions
- rsctest: fix multistate resource testing
- site: add missing command aliases

* Wed Aug 28 2013 Dejan Muhamedagic <dejan@suse.de> and many others
- release candidate 1.2.6-rc3
- cibconf: disable atomic updates until cibadmin gets fixed
- cibconf: match special ids on configuration edit (fixes
  disappearing elements on edit)
- doc: website sources

* Mon Aug  5 2013 Dejan Muhamedagic <dejan@suse.de> and many others
- release candidate 1.2.6-rc1
- main: allow starting with a specified CIB shadow
- main: make sure that tmp files get removed
- cibconf: replace minidom with lxml
- cibconf: groups can have the container meta attribute
- cibconf: do not load CIB automatically in a non-interactive
  mode (bnc#813045)
- cibconf: allow single level fencing_topology (savannah#38737)
- cibconf: improve exit code if a referenced element does not
  exist (e.g. in the show command)
- cibconf: add simulate alias for the ptest command
- cibconf: add -S when running crm_simulate (formerly ptest)
- cibconf: use cibadmin patch to update live CIB (with pcmk >= 1.1.10)
- cibconf: node ids are not id but text
- cibconf: improve elements edit operation
- resource: trace and untrace (RA) commands
- resource: prevent whitespace in meta_attributes when setting
  attributes in nested elements such as groups (bnc#815447)
- resource: add option for better control of group management
  (bnc#806901)
- node/resource: improve lifetime processing
- node: update interface to crm_node, its usage changed
  (bnc#805278)
- node: maintenance/ready commands
- node: ignore case when looking up nodes
- node: update interface to crm_node (node delete)
- node: allow forced node removal
- shadow: fix regression in cib import (from PE file)
- shadow: set shadow directory according to the user preference
- history: fix search for resource messages (bnc#803790)
- history: refresh live report for commands other than info
  (bnc#807402)
- history: use anonymous re groups to prevent out of groups assertion
- history: fix xpath expression for graphs of resource sets
- history: skip empty lines (!) when searching logs
- history: add support for rfc5242 date format in syslog
- userprefs: add reset command
- ui: fix exit code of crm status if crm_mon fails (savannah#38702)
- ui: fix exit code of the help command
- parse: drop obsolete test for operations
- performance: do not make unnecessary parameter uniqueness test
  (bnc#806372)
- performance: check programs existence with python os module
  (bnc#806372)
- performance: improve tests for running resources

* Wed Feb  6 2013 Dejan Muhamedagic <dejan@suse.de> and many others
- stable release 1.2.5
- cibconfig: modgroup command
- cibconfig: directed graph support
- cibconfig: fix syntax error in ptest
- history: diff command (between PE inputs)
- history: show pe commands
- history: graph command
- history: reduce number of live updates
- history: inherit year from the report

* Mon Dec 17 2012 Dejan Muhamedagic <dejan@suse.de> and many others
- stable release 1.2.4
- shadow: return proper exit code on I/O errors
- history: implement transition save (to shadow) subcommand
- history: fix regression when creating log objects
- history: detailed transition output
- history: force refresh on session load

* Tue Dec 11 2012 Dejan Muhamedagic <dejan@suse.de> and many others
- stable release 1.2.3
- ra: don't print duplicate RAs in the list command (bnc#793585)
- history: optimize source refreshing

* Thu Dec  6 2012 Dejan Muhamedagic <dejan@suse.de> and many others
- stable release 1.2.2
- cibconfig: don't bail out if filter fails
- cibconfig: improve id management on element update
- ra: add support for nagios plugins
- utils: make sure that there's at least one column (savannah#37658)
- ui: improve quotes insertion (possible regression)
- history: adjust log patterns for pacemaker v1.1.8
- history: fix setting up the timeframe alias for limit
- history: fix unpacking reports specified without directory
- history: add log subcommand to transition
- build: pcmk.pc renamed to pacemaker.pc in pacemaker v1.1.8

* Mon Oct 15 2012 Dejan Muhamedagic <dejan@suse.de> and many others
- stable release 1.2.1
- cibconfig: show error message on id in use
- cibconfig: repair edit for non-vi users
- cibconfig: update schema separately (don't remove the status section)
- cibconfig: node type is optional now
- ui: readd quotes for single-shot commands
- ra: manage without glue installed (savannah#37560)
- ra: improve support for RH fencing-agents
- ra: add support for crm_resource
- history: remove keyword 'as' which is not compatible with python
  2.4 (savannah#37534)
- history: add the exclude (log messages) command
- history: pacemaker 1.1.8 compatibility code
- utils: exit code of cibadmin -Q on no section changed in 1.1.8
- some more pacemaker 1.1.8 compatibility code

* Tue Sep 18 2012 Dejan Muhamedagic <dejan@suse.de> and many others
- stable release 1.2.0
- cibconfig: support the kind attribute in orders
- cibconfig: implement node-attribute in collocations
- cibconfig: support require-all in resource sets
- cibconfig: support for fencing-topology
- cibconfig: new schema command
- rsctest: resource testing
- history: implement session saving
- history: add alias (timeframe) for the limit command
- xml: support for RNG schema
- site: ticket standby and activate commands
- site: update interface to crm_ticket
- cibstatus: ticket management
- ui: add vim syntax highlighting support
- xml: retrieve data from schema (lf#2092)
- stonith: support rhcs fence-agents (bnc#769724)
- ticket: fix redirecting rsc references in tickets (bnc#763465)
- ui: import readline only when needed (don't print ".[?1034h")
- ui: don't accept non-ascii input (lf#2597)
- ui: enable wait (option -w) for single-shot configure commands
- shadow: calculate shadow directory just like crm_shadow (bnc#759056)
- utils: improve terminal output height calculation (pager)
- utils: use crm_simulate if ptest is not available
- utils: repair ptest usage (bnc#736212)
- utils: prevent spurious error messages if an element doesn't
  exist in CIB (bnc#723677)
- cibconfig: drop attributes set to default on cib import
- cibconfig: support setting attributes in resource sets
- cibconfig: display referenced attr set ids (lf#2304)
- cibconfig: don't verify parameters starting with '$'
- cibconfig: fix meta attributes verify for container elements (lf#2555)
- cibconfig: test for duplicate monitor intervals (lf#2586)
- cibconfig: don't skip monitor operations on verify
- cibconfig: use uname instead of id when listing nodes (cl#5043)
- cibconfig: repair resource parameter uniqueness test
- cibconfig: repair ability to manage multiple rsc/op_defaults (bnc#737812)
- cibconfig: remove also elements which depend on the resource
  template which is to be deleted (bnc#730404)
- cibconfig: report error if a referenced template in primitive
  doesn't exist (bnc#730404)
- cibconfig: exchange rsc and with-rsc after converting collocation
  sets to standard constraints (bnc#729628)
- cibconfig: convert resource sets to standard constraints on
  resource removal (bnc#729628)
- ra: don't require certain parameters for rhcs stonith resources
- ra: use only effective UID when choosing RA interface
- ra: always use lrmadmin with glue 1.0.10 (cl#5036)
- ra: fix start/stop interval test
- completion: add command aliases to completion tables (cl#5013)
- completion: add templates as possible resource references in
  constraints
- history: improve limiting the report time period
- history: tune resource match patterns
- history: reset time period when setting source
- history: add clone/ms resources to events (fixes the transition command)
- history: expand clones and ms in the resource command (bnc#729631)
- history: don't assume that a hb_report tarball name matches the
  top directory name
- history: handle non-existing source better (bnc#728346)
- history: fix regression when fetching new PE inputs (bnc#723417)
- history: use debug severity for repeating messages (bnc#726611)
- help: page overview help screens
- help: append slash to levels in overview help screen
- help: add '?' as alias for help
- help: add topics to the help system
- doc: describe deficiency in the configure edit command (bnc#715698)
- move user files to standard locations (XDG)
- build: add optional regression testing on rpm build
- build: fetch the daemon location from glue-config.h

* Wed Oct 19 2011 Dejan Muhamedagic <dejan@suse.de> and many others
- stable release 1.1.0
- history/troubleshooting support
- template support
- geo-cluster support commands
- support for configure rsc_ticket
- support for LRM secrets at the resource level
- enable removal of unmanaged resources (bnc#696506)
- split-off from Pacemaker after release 1.1.6
