From 4d51446bd3cd9ab222f9978f8f5def1f3a37fa0e Mon Sep 17 00:00:00 2001 From: Florence Blanc-Renaud Date: Thu, 20 Jun 2024 08:13:27 +0200 Subject: [PATCH] ipatests: add test for ticket 9610 Test scenario: - ensure there is no /etc/ssh/ssh_config.orig file - force ipa-client package reinstallation - ensure no backup file is created in /etc/ssh/ssh_config.orig Related: https://pagure.io/freeipa/issue/9610 Signed-off-by: Florence Blanc-Renaud Reviewed-By: Michal Polovka --- ipatests/pytest_ipa/integration/tasks.py | 15 +++++++++++++++ ipatests/test_integration/test_upgrade.py | 14 ++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/ipatests/pytest_ipa/integration/tasks.py b/ipatests/pytest_ipa/integration/tasks.py index 6665f361e0880a149ecca8c6f7c3fe1feb1f42d0..9d6b5f67a311a28c335801d59e0ff0f0c7faccdd 100755 --- a/ipatests/pytest_ipa/integration/tasks.py +++ b/ipatests/pytest_ipa/integration/tasks.py @@ -2550,6 +2550,21 @@ def install_packages(host, pkgs): host.run_command(install_cmd + pkgs) +def reinstall_packages(host, pkgs): + """Install packages on a remote host. + :param host: the host where the installation takes place + :param pkgs: packages to install, provided as a list of strings + """ + platform = get_platform(host) + if platform in {'rhel', 'fedora'}: + install_cmd = ['/usr/bin/dnf', 'reinstall', '-y'] + elif platform in {'debian', 'ubuntu'}: + install_cmd = ['apt-get', '--reinstall', 'install', '-y'] + else: + raise ValueError('install_packages: unknown platform %s' % platform) + host.run_command(install_cmd + pkgs) + + def download_packages(host, pkgs): """Download packages on a remote host. :param host: the host where the download takes place diff --git a/ipatests/test_integration/test_upgrade.py b/ipatests/test_integration/test_upgrade.py index 182e3b5da3c758cc10913ad4eed119b0983fcc23..011de939e92790734d63da2f85be1c25349116a8 100644 --- a/ipatests/test_integration/test_upgrade.py +++ b/ipatests/test_integration/test_upgrade.py @@ -477,3 +477,17 @@ class TestUpgrade(IntegrationTest): self.master.run_command(['ipa-server-upgrade']) assert self.master.transport.file_exists( paths.SYSTEMD_PKI_TOMCAT_IPA_CONF) + + def test_ssh_config(self): + """Test that pkg upgrade does not create /etc/ssh/ssh_config.orig + + Test for ticket 9610 + The upgrade of ipa-client package should not create a backup file + /etc/ssh/ssh_config.orig if no change is applied. + """ + # Ensure there is no backup file before the test + self.master.run_command(["rm", "-f", paths.SSH_CONFIG + ".orig"]) + # Force client package reinstallation to trigger %post scriptlet + tasks.reinstall_packages(self.master, ['*ipa-client']) + assert not self.master.transport.file_exists( + paths.SSH_CONFIG + ".orig") -- 2.45.2