Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package crmsh for openSUSE:Factory checked in at 2025-12-10 15:33:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/crmsh (Old) and /work/SRC/openSUSE:Factory/.crmsh.new.1939 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crmsh" Wed Dec 10 15:33:59 2025 rev:390 rq:1321940 version:5.0.0+20251210.b974da26 Changes: -------- --- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes 2025-11-28 16:55:26.912642706 +0100 +++ /work/SRC/openSUSE:Factory/.crmsh.new.1939/crmsh.changes 2025-12-10 15:34:37.272611602 +0100 @@ -1,0 +2,21 @@ +Wed Dec 10 10:43:22 UTC 2025 - [email protected] + +- Update to version 5.0.0+20251210.b974da26: + * Dev: behave: Add functional test for adding qdevice on a diskless SBD cluster + * Dev: unittests: Adjust unit test for previous commit + * Fix: qdevice: Make sure stonith-watchdog-timeout is 2 times of SBD_WATCHDOG_TIMEOUT (bsc#1254571) + +------------------------------------------------------------------- +Wed Dec 10 07:09:44 UTC 2025 - [email protected] + +- Update to version 5.0.0+20251210.11894b3e: + * Dev: run-functional-tests: Stop firewalld.service before tests + * Revert "Dev: Update Docker image" + +------------------------------------------------------------------- +Mon Dec 08 08:40:02 UTC 2025 - [email protected] + +- Update to version 5.0.0+20251208.8152aa4f: + * Fix: migration: Avoid exception inside thread + +------------------------------------------------------------------- Old: ---- crmsh-5.0.0+20251128.b328f794.tar.bz2 New: ---- crmsh-5.0.0+20251210.b974da26.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crmsh.spec ++++++ --- /var/tmp/diff_new_pack.PBlfXj/_old 2025-12-10 15:34:38.236652388 +0100 +++ /var/tmp/diff_new_pack.PBlfXj/_new 2025-12-10 15:34:38.236652388 +0100 @@ -41,7 +41,7 @@ Summary: High Availability cluster command-line interface License: GPL-2.0-or-later Group: %{pkg_group} -Version: 5.0.0+20251128.b328f794 +Version: 5.0.0+20251210.b974da26 Release: 0 URL: http://crmsh.github.io Source0: %{name}-%{version}.tar.bz2 ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.PBlfXj/_old 2025-12-10 15:34:38.292654757 +0100 +++ /var/tmp/diff_new_pack.PBlfXj/_new 2025-12-10 15:34:38.300655096 +0100 @@ -9,7 +9,7 @@ </service> <service name="tar_scm"> <param name="url">https://github.com/ClusterLabs/crmsh.git</param> - <param name="changesrevision">185c39f29dec57cc79f1b044ad03160a77406578</param> + <param name="changesrevision">5d295aa3f9f138e0880cd252b10874d3914fa2e9</param> </service> </servicedata> (No newline at EOF) ++++++ crmsh-5.0.0+20251128.b328f794.tar.bz2 -> crmsh-5.0.0+20251210.b974da26.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-5.0.0+20251128.b328f794/crmsh/bootstrap.py new/crmsh-5.0.0+20251210.b974da26/crmsh/bootstrap.py --- old/crmsh-5.0.0+20251128.b328f794/crmsh/bootstrap.py 2025-11-28 10:33:24.000000000 +0100 +++ new/crmsh-5.0.0+20251210.b974da26/crmsh/bootstrap.py 2025-12-10 10:30:33.000000000 +0100 @@ -1638,8 +1638,7 @@ qdevice_inst.set_cluster_name() qdevice_inst.valid_qnetd() qdevice_inst.config_and_start_qdevice() - if _context.stage == "qdevice": - adjust_properties() + adjust_properties() def init(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-5.0.0+20251128.b328f794/crmsh/migration.py new/crmsh-5.0.0+20251210.b974da26/crmsh/migration.py --- old/crmsh-5.0.0+20251128.b328f794/crmsh/migration.py 2025-11-28 10:33:24.000000000 +0100 +++ new/crmsh-5.0.0+20251210.b974da26/crmsh/migration.py 2025-12-10 10:30:33.000000000 +0100 @@ -246,11 +246,12 @@ def check_remote(): handler = CheckResultInteractiveHandler() + nodes = utils.list_cluster_nodes_except_me() class CheckRemoteThread(threading.Thread): def run(self): self.result = prun.prun({ node: 'crm cluster health sles16 --local --json=oneline' - for node in utils.list_cluster_nodes_except_me() + for node in nodes }) prun_thread = CheckRemoteThread() prun_thread.start() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-5.0.0+20251128.b328f794/crmsh/qdevice.py new/crmsh-5.0.0+20251210.b974da26/crmsh/qdevice.py --- old/crmsh-5.0.0+20251128.b328f794/crmsh/qdevice.py 2025-11-28 10:33:24.000000000 +0100 +++ new/crmsh-5.0.0+20251210.b974da26/crmsh/qdevice.py 2025-12-10 10:30:33.000000000 +0100 @@ -634,7 +634,7 @@ if not res or int(res) < sbd.SBDTimeout.SBD_WATCHDOG_TIMEOUT_DEFAULT_WITH_QDEVICE: sbd_watchdog_timeout_qdevice = sbd.SBDTimeout.SBD_WATCHDOG_TIMEOUT_DEFAULT_WITH_QDEVICE sbd.SBDManager.update_sbd_configuration({"SBD_WATCHDOG_TIMEOUT": str(sbd_watchdog_timeout_qdevice)}) - utils.set_property("stonith-timeout", sbd.SBDTimeout.get_stonith_timeout()) + utils.set_property("stonith-watchdog-timeout", 2 * sbd_watchdog_timeout_qdevice) @qnetd_lock_for_same_cluster_name def config_and_start_qdevice(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-5.0.0+20251128.b328f794/test/features/bootstrap_sbd_delay.feature new/crmsh-5.0.0+20251210.b974da26/test/features/bootstrap_sbd_delay.feature --- old/crmsh-5.0.0+20251128.b328f794/test/features/bootstrap_sbd_delay.feature 2025-11-28 10:33:24.000000000 +0100 +++ new/crmsh-5.0.0+20251210.b974da26/test/features/bootstrap_sbd_delay.feature 2025-12-10 10:30:33.000000000 +0100 @@ -252,6 +252,18 @@ And Cluster property "stonith-watchdog-timeout" is "70" @clean + Scenario: Add qdevice on a diskless SBD cluster (bsc#1254571) + Given Cluster service is "stopped" on "hanode1" + When Run "crm cluster init -S -y" on "hanode1" + Then Cluster service is "started" on "hanode1" + And Service "sbd" is "started" on "hanode1" + When Run "crm cluster init qdevice --qnetd-hostname=qnetd-node -y" on "hanode1" + Then Service "corosync-qdevice" is "started" on "hanode1" + And SBD option "SBD_WATCHDOG_TIMEOUT" value is "35" + And Cluster property "stonith-timeout" is "95" + And Cluster property "stonith-watchdog-timeout" is "70" + + @clean Scenario: Add and remove qdevice from cluster with sbd running Given Cluster service is "stopped" on "hanode1" Given Cluster service is "stopped" on "hanode2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-5.0.0+20251128.b328f794/test/run-functional-tests new/crmsh-5.0.0+20251210.b974da26/test/run-functional-tests --- old/crmsh-5.0.0+20251128.b328f794/test/run-functional-tests 2025-11-28 10:33:24.000000000 +0100 +++ new/crmsh-5.0.0+20251210.b974da26/test/run-functional-tests 2025-12-10 10:30:33.000000000 +0100 @@ -1,5 +1,5 @@ #!/bin/bash -CONTAINER_IMAGE=${CONTAINER_IMAGE:-"docker.io/liangxin1300/haleap:master"} +CONTAINER_IMAGE=${CONTAINER_IMAGE:-"docker.io/nyang23/haleap:master"} PYPI_MIRROR=${PYPI_MIRROR:-""} PROJECT_PATH=$(dirname $(dirname `realpath $0`)) PROJECT_INSIDE="/opt/crmsh" @@ -206,6 +206,7 @@ podman_exec $node_name "rm -rf /run/nologin" podman_exec $node_name "echo 'StrictHostKeyChecking no' >> /etc/ssh/ssh_config" podman_exec $node_name "systemctl start sshd.service" + podman_exec $node_name "systemctl stop firewalld.service" if [[ "$node_name" != "qnetd-node" && ! "$node_name" =~ ^pcmk-remote-node[0-9]$ ]];then podman cp $PROJECT_PATH $node_name:/opt/crmsh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-5.0.0+20251128.b328f794/test/unittests/test_qdevice.py new/crmsh-5.0.0+20251210.b974da26/test/unittests/test_qdevice.py --- old/crmsh-5.0.0+20251128.b328f794/test/unittests/test_qdevice.py 2025-11-28 10:33:24.000000000 +0100 +++ new/crmsh-5.0.0+20251210.b974da26/test/unittests/test_qdevice.py 2025-12-10 10:30:33.000000000 +0100 @@ -838,21 +838,19 @@ mock_cluster_shell_instance.get_stdout_or_raise_error.assert_called_once_with("firewall-cmd --reload", "10.10.10.123") @mock.patch('crmsh.utils.set_property') - @mock.patch('crmsh.sbd.SBDTimeout.get_stonith_timeout') @mock.patch('crmsh.sbd.SBDManager.update_sbd_configuration') @mock.patch('crmsh.sbd.SBDUtils.get_sbd_value_from_config') @mock.patch('crmsh.sbd.SBDUtils.is_using_diskless_sbd') - def test_adjust_sbd_watchdog_timeout_with_qdevice(self, mock_using_diskless_sbd, mock_get_sbd_value, mock_update_config, mock_get_timeout, mock_set_property): + def test_adjust_sbd_watchdog_timeout_with_qdevice(self, mock_using_diskless_sbd, mock_get_sbd_value, mock_update_config, mock_set_property): mock_using_diskless_sbd.return_value = True mock_get_sbd_value.return_value = "" - mock_get_timeout.return_value = 100 self.qdevice_with_stage_cluster_name.adjust_sbd_watchdog_timeout_with_qdevice() mock_using_diskless_sbd.assert_called_once_with() mock_get_sbd_value.assert_called_once_with("SBD_WATCHDOG_TIMEOUT") mock_update_config.assert_called_once_with({"SBD_WATCHDOG_TIMEOUT": str(sbd.SBDTimeout.SBD_WATCHDOG_TIMEOUT_DEFAULT_WITH_QDEVICE)}) - mock_set_property.assert_called_once_with("stonith-timeout", 100) + mock_set_property.assert_called_once_with("stonith-watchdog-timeout", 2*sbd.SBDTimeout.SBD_WATCHDOG_TIMEOUT_DEFAULT_WITH_QDEVICE) @mock.patch('crmsh.qdevice.QDevice.start_qnetd') @mock.patch('crmsh.qdevice.QDevice.enable_qnetd')
