Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package crmsh for openSUSE:Factory checked in at 2023-01-16 17:59:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/crmsh (Old) and /work/SRC/openSUSE:Factory/.crmsh.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crmsh" Mon Jan 16 17:59:21 2023 rev:276 rq:1058606 version:4.4.1+20230115.e69ffac7 Changes: -------- --- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes 2023-01-06 17:06:39.988555654 +0100 +++ /work/SRC/openSUSE:Factory/.crmsh.new.32243/crmsh.changes 2023-01-16 18:02:00.987864425 +0100 @@ -1,0 +2,14 @@ +Sun Jan 15 08:34:31 UTC 2023 - xli...@suse.com + +- Update to version 4.4.1+20230115.e69ffac7: + * Fix spelling errors. + * Don't use inspect.getargspec, removed in Python 3.11. + +------------------------------------------------------------------- +Wed Jan 11 08:20:29 UTC 2023 - xli...@suse.com + +- Update to version 4.4.1+20230111.89dfe511: + * Dev: behave: Add 'sudo' before most of commands + * Dev: behave: Run all cases twice under normal user + +------------------------------------------------------------------- Old: ---- crmsh-4.4.1+20230106.b020209b.tar.bz2 New: ---- crmsh-4.4.1+20230115.e69ffac7.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ crmsh.spec ++++++ --- /var/tmp/diff_new_pack.1JH2eK/_old 2023-01-16 18:02:01.871869385 +0100 +++ /var/tmp/diff_new_pack.1JH2eK/_new 2023-01-16 18:02:01.875869408 +0100 @@ -36,7 +36,7 @@ Summary: High Availability cluster command-line interface License: GPL-2.0-or-later Group: %{pkg_group} -Version: 4.4.1+20230106.b020209b +Version: 4.4.1+20230115.e69ffac7 Release: 0 URL: http://crmsh.github.io Source0: %{name}-%{version}.tar.bz2 ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.1JH2eK/_old 2023-01-16 18:02:01.923869677 +0100 +++ /var/tmp/diff_new_pack.1JH2eK/_new 2023-01-16 18:02:01.927869700 +0100 @@ -9,7 +9,7 @@ </service> <service name="tar_scm"> <param name="url">https://github.com/ClusterLabs/crmsh.git</param> - <param name="changesrevision">591fc3f7119e3c02d37d3bb1a8438a2f4fac6723</param> + <param name="changesrevision">e69ffac7f6e674d5c717ccb4bbd77b12560d2dd6</param> </service> </servicedata> (No newline at EOF) ++++++ crmsh-4.4.1+20230106.b020209b.tar.bz2 -> crmsh-4.4.1+20230115.e69ffac7.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/.github/workflows/crmsh-ci.yml new/crmsh-4.4.1+20230115.e69ffac7/.github/workflows/crmsh-ci.yml --- old/crmsh-4.4.1+20230106.b020209b/.github/workflows/crmsh-ci.yml 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/.github/workflows/crmsh-ci.yml 2023-01-15 08:56:56.000000000 +0100 @@ -62,7 +62,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF crm_report_bugs` + index=`$GET_INDEX_OF crm_report_bugs` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_bootstrap_bugs: runs-on: ubuntu-20.04 @@ -73,7 +74,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF bootstrap_bugs` + index=`$GET_INDEX_OF bootstrap_bugs` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_bootstrap_common: runs-on: ubuntu-20.04 @@ -84,7 +86,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF bootstrap_init_join_remove` + index=`$GET_INDEX_OF bootstrap_init_join_remove` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_bootstrap_options: runs-on: ubuntu-20.04 @@ -95,7 +98,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF bootstrap_options` + index=`$GET_INDEX_OF bootstrap_options` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_qdevice_setup_remove: runs-on: ubuntu-20.04 @@ -106,7 +110,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF qdevice_setup_remove` + index=`$GET_INDEX_OF qdevice_setup_remove` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_qdevice_options: runs-on: ubuntu-20.04 @@ -117,7 +122,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF qdevice_options` + index=`$GET_INDEX_OF qdevice_options` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_qdevice_validate: runs-on: ubuntu-20.04 @@ -128,7 +134,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF qdevice_validate` + index=`$GET_INDEX_OF qdevice_validate` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_qdevice_user_case: runs-on: ubuntu-20.04 @@ -139,7 +146,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF qdevice_usercase` + index=`$GET_INDEX_OF qdevice_usercase` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_resource_subcommand: runs-on: ubuntu-20.04 @@ -150,7 +158,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF resource_failcount resource_set` + index=`$GET_INDEX_OF resource_failcount resource_set` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_configure_sublevel: runs-on: ubuntu-20.04 @@ -161,7 +170,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF configure_bugs` + index=`$GET_INDEX_OF configure_bugs` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_constraints_bugs: runs-on: ubuntu-20.04 @@ -172,7 +182,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF constraints_bugs` + index=`$GET_INDEX_OF constraints_bugs` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_geo_cluster: runs-on: ubuntu-20.04 @@ -183,7 +194,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF geo_setup` + index=`$GET_INDEX_OF geo_setup` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_healthcheck: runs-on: ubuntu-20.04 @@ -194,7 +206,8 @@ run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service - $DOCKER_SCRIPT `$GET_INDEX_OF healthcheck` + index=`$GET_INDEX_OF healthcheck` + $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u functional_test_cluster_api: runs-on: ubuntu-20.04 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/crmsh/ui_utils.py new/crmsh-4.4.1+20230115.e69ffac7/crmsh/ui_utils.py --- old/crmsh-4.4.1+20230106.b020209b/crmsh/ui_utils.py 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/crmsh/ui_utils.py 2023-01-15 08:56:56.000000000 +0100 @@ -113,7 +113,7 @@ Returns a prettified representation of the command arguments ''' - specs = inspect.getargspec(f) + specs = inspect.getfullargspec(f) named_args = [] if specs.defaults is None: named_args += specs.args @@ -140,7 +140,7 @@ Note: Does not support keyword arguments. ''' - specs = inspect.getargspec(f) + specs = inspect.getfullargspec(f) min_args = len(specs.args) if specs.defaults is not None: min_args -= len(specs.defaults) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/data-manifest new/crmsh-4.4.1+20230115.e69ffac7/data-manifest --- old/crmsh-4.4.1+20230106.b020209b/data-manifest 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/data-manifest 2023-01-15 08:56:56.000000000 +0100 @@ -66,7 +66,6 @@ test/descriptions test/evaltest.sh test/features/bootstrap_bugs.feature -test/features/bootstrap_init_join_remove_alice.feature test/features/bootstrap_init_join_remove.feature test/features/bootstrap_options.feature test/features/bootstrap_sbd_delay.feature diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/doc/crm.8.adoc new/crmsh-4.4.1+20230115.e69ffac7/doc/crm.8.adoc --- old/crmsh-4.4.1+20230106.b020209b/doc/crm.8.adoc 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/doc/crm.8.adoc 2023-01-15 08:56:56.000000000 +0100 @@ -254,7 +254,7 @@ `crm cf`. `crm resource` can be shorted as `crm rsc`, and so on. The exact list of accepted aliases is too long to print in full, but -experimentation and typoes should help in discovering more of them. +experimentation and typos should help in discovering more of them. [[topics_Features,Features]] == Features diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/doc/website-v1/man-2.0.adoc new/crmsh-4.4.1+20230115.e69ffac7/doc/website-v1/man-2.0.adoc --- old/crmsh-4.4.1+20230106.b020209b/doc/website-v1/man-2.0.adoc 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/doc/website-v1/man-2.0.adoc 2023-01-15 08:56:56.000000000 +0100 @@ -255,7 +255,7 @@ `crm cf`. `crm resource` can be shorted as `crm rsc`, and so on. The exact list of accepted aliases is too long to print in full, but -experimentation and typoes should help in discovering more of them. +experimentation and typos should help in discovering more of them. [[topics_Features,Features]] == Features diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/doc/website-v1/man-3.adoc new/crmsh-4.4.1+20230115.e69ffac7/doc/website-v1/man-3.adoc --- old/crmsh-4.4.1+20230106.b020209b/doc/website-v1/man-3.adoc 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/doc/website-v1/man-3.adoc 2023-01-15 08:56:56.000000000 +0100 @@ -255,7 +255,7 @@ `crm cf`. `crm resource` can be shorted as `crm rsc`, and so on. The exact list of accepted aliases is too long to print in full, but -experimentation and typoes should help in discovering more of them. +experimentation and typos should help in discovering more of them. [[topics_Features,Features]] == Features diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/doc/website-v1/man-4.3.adoc new/crmsh-4.4.1+20230115.e69ffac7/doc/website-v1/man-4.3.adoc --- old/crmsh-4.4.1+20230106.b020209b/doc/website-v1/man-4.3.adoc 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/doc/website-v1/man-4.3.adoc 2023-01-15 08:56:56.000000000 +0100 @@ -254,7 +254,7 @@ `crm cf`. `crm resource` can be shorted as `crm rsc`, and so on. The exact list of accepted aliases is too long to print in full, but -experimentation and typoes should help in discovering more of them. +experimentation and typos should help in discovering more of them. [[topics_Features,Features]] == Features diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/bootstrap_bugs.feature new/crmsh-4.4.1+20230115.e69ffac7/test/features/bootstrap_bugs.feature --- old/crmsh-4.4.1+20230106.b020209b/test/features/bootstrap_bugs.feature 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/bootstrap_bugs.feature 2023-01-15 08:56:56.000000000 +0100 @@ -107,8 +107,8 @@ Scenario: Change host name in /etc/hosts as alias(bsc#1183654) Given Cluster service is "stopped" on "hanode1" And Cluster service is "stopped" on "hanode2" - When Run "echo '@hanode1.ip.0 HANODE1' >> /etc/hosts" on "hanode1" - When Run "echo '@hanode2.ip.0 HANODE2' >> /etc/hosts" on "hanode2" + When Run "echo '@hanode1.ip.0 HANODE1'|sudo tee -a /etc/hosts" on "hanode1" + When Run "echo '@hanode2.ip.0 HANODE2'|sudo tee -a /etc/hosts" on "hanode2" When Run "crm cluster init -y" on "hanode1" Then Cluster service is "started" on "hanode1" When Run "crm cluster join -c HANODE1 -y" on "hanode2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/bootstrap_init_join_remove_alice.feature new/crmsh-4.4.1+20230115.e69ffac7/test/features/bootstrap_init_join_remove_alice.feature --- old/crmsh-4.4.1+20230106.b020209b/test/features/bootstrap_init_join_remove_alice.feature 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/bootstrap_init_join_remove_alice.feature 1970-01-01 01:00:00.000000000 +0100 @@ -1,17 +0,0 @@ -@bootstrap -Feature: crmsh bootstrap process - init, join and remove - - Test crmsh bootstrap init/join/remove process - Need nodes: hanode1 hanode2 - - Scenario: Setup a two nodes cluster as alice and bob - Given Nodes ["hanode1", "hanode2"] are cleaned up - And Cluster service is "stopped" on "hanode1" - And Cluster service is "stopped" on "hanode2" - When Run "su alice -c 'crm cluster init -y'" on "hanode1" - Then Cluster service is "started" on "hanode1" - And Show cluster status on "hanode1" - When Run "su bob -c 'crm cluster join -c alice@hanode1 -y'" on "hanode2" - Then Cluster service is "started" on "hanode2" - And Online nodes are "hanode1 hanode2" - And Show cluster status on "hanode1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/crm_report_bugs.feature new/crmsh-4.4.1+20230115.e69ffac7/test/features/crm_report_bugs.feature --- old/crmsh-4.4.1+20230106.b020209b/test/features/crm_report_bugs.feature 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/crm_report_bugs.feature 2023-01-15 08:56:56.000000000 +0100 @@ -66,7 +66,7 @@ When Run "crm node utilization hanode1 set password qwertyui" on "hanode1" When Run "crm report report" on "hanode1" When Run "tar jxf report.tar.bz2" on "hanode1" - And Try "grep -R "qwertyui" report" + And Try "grep -R 'qwertyui' report" # crm report mask passw.* by default # No password here Then Expected return code is "1" @@ -78,7 +78,7 @@ And Run "sed -i 's/; sanitize_rule = .*$/sanitize_rule = passw.*|ip.*:raw/g' /etc/crm/crm.conf" on "hanode1" And Run "crm report report" on "hanode1" And Run "tar jxf report.tar.bz2" on "hanode1" - And Try "grep -R -E "@vip.0|qwertyui" report" + And Try "grep -R -E '@vip.0|qwertyui' report" # No password here Then Expected return code is "1" When Run "rm -rf report.tar.bz2 report" on "hanode1" @@ -86,10 +86,10 @@ # Do sanitize job, also for TEL When Run "crm report -s -p TEL report" on "hanode1" When Run "tar jxf report.tar.bz2" on "hanode1" - And Try "grep -R "qwertyui" report" + And Try "grep -R 'qwertyui' report" # No password here Then Expected return code is "1" - When Try "grep -R "13356789876" report" + When Try "grep -R '13356789876' report" # No TEL number here Then Expected return code is "1" When Run "rm -rf report.tar.bz2 report" on "hanode1" @@ -99,7 +99,7 @@ And Run "sed -i 's/sanitize_rule = .*$/sanitize_rule = /g' /etc/crm/crm.conf" on "hanode1" When Run "crm report report" on "hanode1" When Run "tar jxf report.tar.bz2" on "hanode1" - And Try "grep -R "qwertyui" report" + And Try "grep -R 'qwertyui' report" # found password Then Expected return code is "0" When Run "rm -rf report.tar.bz2 report" on "hanode1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/environment.py new/crmsh-4.4.1+20230115.e69ffac7/test/features/environment.py --- old/crmsh-4.4.1+20230106.b020209b/test/features/environment.py 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/environment.py 2023-01-15 08:56:56.000000000 +0100 @@ -5,7 +5,7 @@ def get_online_nodes(): - _, out, _ = utils.get_stdout_stderr('crm_node -l') + _, out, _ = utils.get_stdout_stderr('sudo crm_node -l') if out: return re.findall(r'[0-9]+ (.*) member', out) else: @@ -13,7 +13,7 @@ def resource_cleanup(): - utils.get_stdout_stderr('crm resource cleanup') + utils.get_stdout_stderr('sudo crm resource cleanup') def before_step(context, step): @@ -31,4 +31,4 @@ time.sleep(1) if utils.get_dc(): break - utils.get_stdout_or_raise_error("crm cluster stop --all") + utils.get_stdout_or_raise_error("sudo crm cluster stop --all") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/qdevice_setup_remove.feature new/crmsh-4.4.1+20230115.e69ffac7/test/features/qdevice_setup_remove.feature --- old/crmsh-4.4.1+20230106.b020209b/test/features/qdevice_setup_remove.feature 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/qdevice_setup_remove.feature 2023-01-15 08:56:56.000000000 +0100 @@ -35,7 +35,7 @@ Then Cluster service is "started" on "hanode2" And Online nodes are "hanode1 hanode2" And Service "corosync-qdevice" is "stopped" on "hanode2" - When Run "echo "# This is a test for bsc#1166684" >> /etc/corosync/corosync.conf" on "hanode1" + When Run "echo "# This is a test for bsc#1166684"|sudo tee -a /etc/corosync/corosync.conf" on "hanode1" When Run "scp /etc/corosync/corosync.conf root@hanode2:/etc/corosync" on "hanode1" When Run "crm cluster init qdevice --qnetd-hostname=qnetd-node -y" on "hanode1" # for bsc#1181415 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/qdevice_usercase.feature new/crmsh-4.4.1+20230115.e69ffac7/test/features/qdevice_usercase.feature --- old/crmsh-4.4.1+20230106.b020209b/test/features/qdevice_usercase.feature 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/qdevice_usercase.feature 2023-01-15 08:56:56.000000000 +0100 @@ -70,8 +70,8 @@ When Run "ssh root@hanode2 corosync-quorumtool -s" on "hanode1" Then Expected "Quorate: Yes" in stdout # Use iptables command to simulate split-brain - When Run "iptables -I INPUT -s @hanode2.ip.default -j DROP; iptables -I OUTPUT -d @hanode2.ip.default -j DROP" on "hanode1" - And Run "iptables -I INPUT -s @hanode1.ip.default -j DROP; iptables -I OUTPUT -d @hanode1.ip.default -j DROP" on "hanode2" + When Run "iptables -I INPUT -s @hanode2.ip.default -j DROP; sudo iptables -I OUTPUT -d @hanode2.ip.default -j DROP" on "hanode1" + And Run "iptables -I INPUT -s @hanode1.ip.default -j DROP; sudo iptables -I OUTPUT -d @hanode1.ip.default -j DROP" on "hanode2" # Check whether hanode1 has quorum, while hanode2 doesn't And Run "sleep 20" on "hanode1" When Run "crm corosync status quorum" on "hanode1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/resource_set.feature new/crmsh-4.4.1+20230115.e69ffac7/test/features/resource_set.feature --- old/crmsh-4.4.1+20230106.b020209b/test/features/resource_set.feature 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/resource_set.feature 2023-01-15 08:56:56.000000000 +0100 @@ -120,13 +120,13 @@ When Run "crm resource trace d monitor" on "hanode1" Then Expected "Trace for d:monitor is written to /var/lib/heartbeat/trace_ra/Dummy" in stdout When Wait "10" seconds - Then Run "ls /var/lib/heartbeat/trace_ra/Dummy/d.monitor.*" OK + Then Run "bash -c 'ls /var/lib/heartbeat/trace_ra/Dummy/d.monitor.*'" OK When Run "crm resource untrace d" on "hanode1" Then Expected "Stop tracing d" in stdout When Run "crm resource trace d monitor /trace_log_d" on "hanode1" Then Expected "Trace for d:monitor is written to /trace_log_d/Dummy" in stdout When Wait "10" seconds - Then Run "ls /trace_log_d/Dummy/d.monitor.*" OK + Then Run "bash -c 'ls /trace_log_d/Dummy/d.monitor.*'" OK When Run "crm resource untrace d" on "hanode1" Then Expected "Stop tracing d" in stdout diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/steps/step_implementation.py new/crmsh-4.4.1+20230115.e69ffac7/test/features/steps/step_implementation.py --- old/crmsh-4.4.1+20230106.b020209b/test/features/steps/step_implementation.py 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/steps/step_implementation.py 2023-01-15 08:56:56.000000000 +0100 @@ -25,8 +25,12 @@ @when('Write multi lines to file "{f}"') def step_impl(context, f): - with open(f, 'w') as fd: - fd.write(context.text) + data_list = context.text.split('\n') + for line in data_list: + echo_option = " -n" if line == data_list[-1] else "" + cmd = "echo{} {}|sudo tee -a {}".format(echo_option, line, f) + run_command(context, cmd) + @given('Cluster service is "{state}" on "{addr}"') def step_impl(context, state, addr): @@ -437,7 +441,7 @@ @then('File "{path}" exists on "{node}"') def step_impl(context, path, node): - parallax.parallax_call([node], '[ -f {} ]'.format(path)) + parallax.parallax_call([node], 'sudo test -f {}'.format(path)) @then('File "{path}" not exist on "{node}"') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/features/steps/utils.py new/crmsh-4.4.1+20230115.e69ffac7/test/features/steps/utils.py --- old/crmsh-4.4.1+20230106.b020209b/test/features/steps/utils.py 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/features/steps/utils.py 2023-01-15 08:56:56.000000000 +0100 @@ -1,3 +1,4 @@ +import getpass import difflib import tarfile import glob @@ -35,8 +36,15 @@ return socket.gethostname() +def add_sudo(cmd): + user = getpass.getuser() + if user != 'root': + cmd = "sudo {}".format(cmd) + return cmd + + def run_command(context, cmd, err_record=False): - rc, out, err = utils.get_stdout_stderr(cmd) + rc, out, err = utils.get_stdout_stderr(add_sudo(cmd)) if rc != 0 and err: if err_record: res = re.sub(r'\x1b\[[0-9]+m', '', err) @@ -50,6 +58,7 @@ def run_command_local_or_remote(context, cmd, addr, err_record=False): + cmd = add_sudo(cmd) if addr == me(): rc, out = run_command(context, cmd, err_record) context.return_code = rc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-4.4.1+20230106.b020209b/test/run-functional-tests new/crmsh-4.4.1+20230115.e69ffac7/test/run-functional-tests --- old/crmsh-4.4.1+20230106.b020209b/test/run-functional-tests 2023-01-06 07:53:15.000000000 +0100 +++ new/crmsh-4.4.1+20230115.e69ffac7/test/run-functional-tests 2023-01-15 08:56:56.000000000 +0100 @@ -391,9 +391,10 @@ } +NORMAL_USER_FLAG=0 CONFIG_COROSYNC_FLAG=1 SETUP_N_NODES_CLUSTER=0 -options=$(getopt -l "help" -o "hldxn:" -- "$@") +options=$(getopt -l "help" -o "hldxun:" -- "$@") eval set -- "$options" while true;do case $1 in @@ -411,6 +412,10 @@ CONFIG_COROSYNC_FLAG=0 shift ;; +-u) + NORMAL_USER_FLAG=1 + shift + ;; -n) check_docker_env shift @@ -472,6 +477,13 @@ CONFIG_COROSYNC_FLAG=0 setup_cluster ${node_arry[@]} adjust_test_case ${node_arry[0]} $case_file_in_container - docker_exec ${node_arry[0]} "behave --no-logcapture $case_file_in_container || exit 1" || exit 1 + echo + if [ "$NORMAL_USER_FLAG" -eq 0 ];then + info "Running \"$case_file_in_container\" under 'root'..." + docker_exec ${node_arry[0]} "behave --no-logcapture $case_file_in_container || exit 1" || exit 1 + else + info "Running \"$case_file_in_container\" under normal user 'alice'..." + docker_exec ${node_arry[0]} "su alice -c 'behave --no-logcapture $case_file_in_container || exit 1'" || exit 1 + fi echo done