diff options
author | Christian Breunig <christian@breunig.cc> | 2024-08-22 18:09:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-22 18:09:32 +0200 |
commit | 322dc0f0ba4fce664d089871bc7833d30f55718c (patch) | |
tree | 389dace55a31793acb7598c68b9c8acb2e2bdc36 | |
parent | 2277371fe18577502ce318c23789f86d1ec97be7 (diff) | |
parent | f453b33a6056de8fc5145ca9e680361fbce68348 (diff) | |
download | vyos-1x-322dc0f0ba4fce664d089871bc7833d30f55718c.tar.gz vyos-1x-322dc0f0ba4fce664d089871bc7833d30f55718c.zip |
Merge pull request #4000 from sever-sever/T6672
T6672: Fix system option ssh-client source-interface
-rwxr-xr-x | smoketest/scripts/cli/test_system_option.py | 15 | ||||
-rwxr-xr-x | src/conf_mode/system_option.py | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/smoketest/scripts/cli/test_system_option.py b/smoketest/scripts/cli/test_system_option.py index c6f48bfc6..ffb1d76ae 100755 --- a/smoketest/scripts/cli/test_system_option.py +++ b/smoketest/scripts/cli/test_system_option.py @@ -80,5 +80,20 @@ 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) 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'] |