From 541268b166373fbbb711b11631cfc6213f0a5226 Mon Sep 17 00:00:00 2001 From: Cristian Matiut Date: Mon, 16 Feb 2026 15:18:17 +0000 Subject: [PATCH 1/2] Fix read file when ' ' in file name --- coriolis/osmorphing/base.py | 2 +- coriolis/providers/backup_writers.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/coriolis/osmorphing/base.py b/coriolis/osmorphing/base.py index 912c69ce..c3ccc74a 100644 --- a/coriolis/osmorphing/base.py +++ b/coriolis/osmorphing/base.py @@ -491,7 +491,7 @@ def _read_file_sudo(self, chroot_path): if chroot_path.startswith("/") is False: chroot_path = "/%s" % chroot_path contents = self._exec_cmd_chroot( - 'cat %s' % chroot_path) + 'cat "%s"' % chroot_path) return contents def _read_grub_config(self, config): diff --git a/coriolis/providers/backup_writers.py b/coriolis/providers/backup_writers.py index e17a3e8b..d68d237c 100644 --- a/coriolis/providers/backup_writers.py +++ b/coriolis/providers/backup_writers.py @@ -911,7 +911,7 @@ def _setup_certificates(self, ssh): def _read_remote_file_sudo(self, remote_path): contents = utils.exec_ssh_cmd( - self._ssh, "sudo cat %s" % remote_path, get_pty=True) + self._ssh, 'sudo cat "%s"' % remote_path, get_pty=True) return contents def _init_writer(self, ssh, cert_paths): From 22c0e0bcf024db32b6699825d83287220160bbc2 Mon Sep 17 00:00:00 2001 From: Cristian Matiut Date: Mon, 16 Feb 2026 15:42:20 +0000 Subject: [PATCH 2/2] Update read file unit tests --- coriolis/tests/osmorphing/test_base.py | 4 ++-- coriolis/tests/providers/test_backup_writers.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/coriolis/tests/osmorphing/test_base.py b/coriolis/tests/osmorphing/test_base.py index b818110c..3ab3d082 100644 --- a/coriolis/tests/osmorphing/test_base.py +++ b/coriolis/tests/osmorphing/test_base.py @@ -808,7 +808,7 @@ def test__read_file_sudo(self, mock_exec_cmd_chroot): result = self.os_morphing_tools._read_file_sudo(chroot_path) - mock_exec_cmd_chroot.assert_called_once_with('cat %s' % chroot_path) + mock_exec_cmd_chroot.assert_called_once_with('cat "%s"' % chroot_path) self.assertEqual(result, mock_exec_cmd_chroot.return_value) @mock.patch.object(base.BaseLinuxOSMorphingTools, '_exec_cmd_chroot') @@ -817,7 +817,7 @@ def test__read_file_sudo_no_leading_slash(self, mock_exec_cmd_chroot): result = self.os_morphing_tools._read_file_sudo(chroot_path) - mock_exec_cmd_chroot.assert_called_once_with('cat /%s' % chroot_path) + mock_exec_cmd_chroot.assert_called_once_with('cat "/%s"' % chroot_path) self.assertEqual(result, mock_exec_cmd_chroot.return_value) @mock.patch.object(base.BaseLinuxOSMorphingTools, '_read_file_sudo') diff --git a/coriolis/tests/providers/test_backup_writers.py b/coriolis/tests/providers/test_backup_writers.py index 1459758c..76fe8152 100644 --- a/coriolis/tests/providers/test_backup_writers.py +++ b/coriolis/tests/providers/test_backup_writers.py @@ -1325,7 +1325,8 @@ def test__read_remote_file_sudo(self, mock_exec_ssh_cmd): mock.sentinel.remote_path) mock_exec_ssh_cmd.assert_called_once_with( - self._ssh, "sudo cat %s" % mock.sentinel.remote_path, get_pty=True) + self._ssh, 'sudo cat "%s"' % mock.sentinel.remote_path, + get_pty=True) self.assertEqual( result, mock_exec_ssh_cmd.return_value)