diff options
author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2024-08-21 16:32:16 +0000 |
---|---|---|
committer | Christian Breunig <christian@breunig.cc> | 2024-08-23 21:01:02 +0200 |
commit | 2947e7f2a5a48af5cb85e440fe5ef83c0e0b498a (patch) | |
tree | 9589a6fb6f9a90d412e864cb436ea595d3ae4bb3 | |
parent | 94908b75bbce9eb2d867e8347901ae23ca6d5b4e (diff) | |
download | vyos-1x-mergify/bp/sagitta/pr-4000.tar.gz vyos-1x-mergify/bp/sagitta/pr-4000.zip |
T6672: Fix system option ssh-client source-interfacemergify/bp/sagitta/pr-4000
Fix for system option ssh-client source-interface
For the `verify_source_interface` the key `ifname` if required
(cherry picked from commit f453b33a6056de8fc5145ca9e680361fbce68348)
-rwxr-xr-x | smoketest/scripts/cli/test_system_option.py | 16 | ||||
-rwxr-xr-x | src/conf_mode/system_option.py | 2 |
2 files changed, 17 insertions, 1 deletions
diff --git a/smoketest/scripts/cli/test_system_option.py b/smoketest/scripts/cli/test_system_option.py index c6f48bfc6..5e2827724 100755 --- a/smoketest/scripts/cli/test_system_option.py +++ b/smoketest/scripts/cli/test_system_option.py @@ -80,5 +80,19 @@ class TestSystemOption(VyOSUnitTestSHIM.TestCase): self.assertEqual(sysctl_read('net.ipv4.neigh.default.gc_thresh2'), gc_thresh2) self.assertEqual(sysctl_read('net.ipv4.neigh.default.gc_thresh3'), gc_thresh3) + def test_ssh_client_options(self): + loopback = 'lo' + ssh_client_opt_file = '/etc/ssh/ssh_config.d/91-vyos-ssh-client-options.conf' + + self.cli_set(['system', 'option', 'ssh-client', 'source-interface', loopback]) + self.cli_commit() + + tmp = read_file(ssh_client_opt_file) + self.assertEqual(tmp, f'BindInterface {loopback}') + + self.cli_delete(['system', 'option']) + self.cli_commit() + self.assertFalse(os.path.exists(ssh_client_opt_file)) + if __name__ == '__main__': - unittest.main(verbosity=2, failfast=True) + unittest.main(verbosity=2) diff --git a/src/conf_mode/system_option.py b/src/conf_mode/system_option.py index d1647e3a1..52d0b7cda 100755 --- a/src/conf_mode/system_option.py +++ b/src/conf_mode/system_option.py @@ -85,6 +85,8 @@ def verify(options): raise ConfigError('No interface with address "{address}" configured!') if 'source_interface' in config: + # verify_source_interface reuires key 'ifname' + config['ifname'] = config['source_interface'] verify_source_interface(config) if 'source_address' in config: address = config['source_address'] |