The nightly test test_ipahealthcheck.py::TestIpaHealthCheck::test_sosreport_includes_healthcheck is using the sosreport command but this command has been deprecated and should be replaced with sos report.
test_ipahealthcheck.py::TestIpaHealthCheck::test_sosreport_includes_healthcheck
sosreport
sos report
The consequence is that the test is failing on rawhide (f43) with sos-4.9.0-2.fc43.noarch. Example of run in https://$ARTIFACTS_SERVER/idm-ci/freeipa_upstream_nightly/Nightly-rawhide/master/2025-02-22_19-30/rawhide/test_ipahealthcheck/4/report.html?sort=result:
self = <ipatests.test_integration.test_ipahealthcheck.TestIpaHealthCheck object at 0x7f7156cf3ca0> create_logfile = None def test_sosreport_includes_healthcheck(self, create_logfile): """ This testcase checks that sosreport command when run on IPA system with healthcheck installed collects healthcheck.log file """ caseid = "123456" msg = "[plugin:ipa] collecting path '{}'".format(HEALTHCHECK_LOG) > cmd = self.master.run_command( [ "sosreport", "-o", "ipa", "--case-id", caseid, "--batch", "-vv", "--build", ] ) caseid = '123456' create_logfile = None msg = "[plugin:ipa] collecting path '/var/log/ipa/healthcheck/healthcheck.log'" self = <ipatests.test_integration.test_ipahealthcheck.TestIpaHealthCheck object at 0x7f7156cf3ca0> test_integration/test_ipahealthcheck.py:1406: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <ipatests.pytest_ipa.integration.host.Host master.ufreeipa.test (master)> argv = ['sosreport', '-o', 'ipa', '--case-id', '123456', '--batch', ...] set_env = True, stdin_text = None, log_stdout = True, raiseonerr = True cwd = None, bg = False, encoding = 'utf-8', ok_returncode = 0 def run_command(self, argv, set_env=True, stdin_text=None, log_stdout=True, raiseonerr=True, cwd=None, bg=False, encoding='utf-8', ok_returncode=0): """Wrapper around run_command to log stderr on raiseonerr=True :param ok_returncode: return code considered to be correct, you can pass an integer or sequence of integers """ result = super().run_command( argv, set_env=set_env, stdin_text=stdin_text, log_stdout=log_stdout, raiseonerr=False, cwd=cwd, bg=bg, encoding=encoding ) # in FIPS mode SSH may print noise to stderr, remove the string # "FIPS mode initialized" + optional newline. result.stderr_bytes = FIPS_NOISE_RE.sub(b'', result.stderr_bytes) try: result_ok = result.returncode in ok_returncode except TypeError: result_ok = result.returncode == ok_returncode if not result_ok and raiseonerr: result.log.error('stderr: %s', result.stderr_text) > raise subprocess.CalledProcessError( result.returncode, argv, result.stdout_text, result.stderr_text ) E subprocess.CalledProcessError: Command '['sosreport', '-o', 'ipa', '--case-id', '123456', '--batch', '-vv', '--build']' returned non-zero exit status 127. __class__ = <class 'ipatests.pytest_ipa.integration.host.Host'> argv = ['sosreport', '-o', 'ipa', '--case-id', '123456', '--batch', ...] bg = False cwd = None encoding = 'utf-8' log_stdout = True ok_returncode = 0 raiseonerr = True result = <pytest_multihost.transport.SSHCommand object at 0x7f7156bddc50> result_ok = False self = <ipatests.pytest_ipa.integration.host.Host master.ufreeipa.test (master)> set_env = True stdin_text = None pytest_ipa/integration/host.py:202: CalledProcessError [...] ------------------------------ Captured log call ------------------------------- INFO ipatests.pytest_ipa.integration.host.Host.master.IPAOpenSSHTransport:transport.py:391 RUN ['sosreport', '-o', 'ipa', '--case-id', '123456', '--batch', '-vv', '--build'] DEBUG ipatests.pytest_ipa.integration.host.Host.master.cmd450:transport.py:513 RUN ['sosreport', '-o', 'ipa', '--case-id', '123456', '--batch', '-vv', '--build'] DEBUG ipatests.pytest_ipa.integration.host.Host.master.cmd450:transport.py:557 bash: line 4: sosreport: command not found DEBUG ipatests.pytest_ipa.integration.host.Host.master.cmd450:transport.py:217 Exit code: 127 ERROR ipatests.pytest_ipa.integration.host.Host.master.cmd450:host.py:201 stderr: bash: line 4: sosreport: command not found
On fedora 41 with sos-4.8.2-1.fc41.noarch the same test shows:
INFO ipatests.pytest_ipa.integration.host.Host.master.IPAOpenSSHTransport:transport.py:391 RUN ['sosreport', '-o', 'ipa', '--case-id', '123456', '--batch', '-vv', '--build'] DEBUG ipatests.pytest_ipa.integration.host.Host.master.cmd452:transport.py:513 RUN ['sosreport', '-o', 'ipa', '--case-id', '123456', '--batch', '-vv', '--build'] DEBUG ipatests.pytest_ipa.integration.host.Host.master.cmd452:transport.py:557 WARNING: the 'sosreport' command has been deprecated in favor of the new 'sos' command, E.G. 'sos report', and will be removed in the upcoming sos-4.9 release. DEBUG ipatests.pytest_ipa.integration.host.Host.master.cmd452:transport.py:557 Redirecting to 'sos report -o ipa --case-id 123456 --batch -vv --build'
The release notes for sos 4.9 mention the removal of the sosreport command redirector:
The legacy redirectors for sosreport and sos-collector have been dropped as of this release. The only executable going forward is sos.
Metadata Update from @frenaud: - Custom field on_review adjusted to https://github.com/freeipa/freeipa/pull/7702
master:
ipa-4-12:
Metadata Update from @rcritten: - Issue close_status updated to: fixed - Issue status updated to: Closed (was: Open)
Log in to comment on this ticket.