* Tue Jan 9 2024 Xin Liang - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 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 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 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 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 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 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 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 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 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 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 and many others - Release 2.3.1 - Require Python 2.6+, not 2.7 (bsc#995611) (#152) * Fri Aug 12 2016 Kristoffer Grönlund 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 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 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: - medium: report: Convert RE exception to simpler UI output - medium: cibconfig: add show related: - doc: Add link to clusterlabs.org - medium: parse: Encode unicode using xmlcharrefreplace in parser - medium: parse: nvpair attributes with no value = (#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 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 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