diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-05-28 22:03:40 +0200 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2026-05-28 22:03:40 +0200 |
| commit | 960e730bdde2f3561aa3cff8941e2f9db8eb32d8 (patch) | |
| tree | 36b8b4a54fbfe1b5ddd60e80b2fdfdafc8466f1c /smoketest/scripts/cli/test_nat66.py | |
| parent | cd619d4c355c9158497951231b1c993f8a7d26a9 (diff) | |
| download | vyos-1x-960e730bdde2f3561aa3cff8941e2f9db8eb32d8.tar.gz vyos-1x-960e730bdde2f3561aa3cff8941e2f9db8eb32d8.zip | |
nat: T8939: fix KeyError: 'group' exception
Prevent access to missing dictionary key by probing for availability. On removal
of inbound-interface or outbound-interface name CLI node, there was a guard
missing when accessing the CLI dictionary containing the config data.
Diffstat (limited to 'smoketest/scripts/cli/test_nat66.py')
| -rwxr-xr-x | smoketest/scripts/cli/test_nat66.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/smoketest/scripts/cli/test_nat66.py b/smoketest/scripts/cli/test_nat66.py index 8bec2f998..9072e78dd 100755 --- a/smoketest/scripts/cli/test_nat66.py +++ b/smoketest/scripts/cli/test_nat66.py @@ -110,11 +110,13 @@ class TestNAT66(VyOSUnitTestSHIM.TestCase): destination_address = 'fc00::1' translation_address = 'fc01::1' source_address = 'fc02::1' - self.cli_set(dst_path + ['rule', '1', 'inbound-interface', 'name', 'eth1']) + in_interface = 'eth1' + + self.cli_set(dst_path + ['rule', '1', 'inbound-interface', 'name', in_interface]) self.cli_set(dst_path + ['rule', '1', 'destination', 'address', destination_address]) self.cli_set(dst_path + ['rule', '1', 'translation', 'address', translation_address]) - self.cli_set(dst_path + ['rule', '2', 'inbound-interface', 'name', 'eth1']) + self.cli_set(dst_path + ['rule', '2', 'inbound-interface', 'name', in_interface]) self.cli_set(dst_path + ['rule', '2', 'destination', 'address', destination_address]) self.cli_set(dst_path + ['rule', '2', 'source', 'address', source_address]) self.cli_set(dst_path + ['rule', '2', 'exclude']) @@ -123,10 +125,19 @@ class TestNAT66(VyOSUnitTestSHIM.TestCase): self.cli_commit() nftables_search = [ - ['iifname "eth1"', 'ip6 daddr fc00::1', 'dnat to fc01::1'], - ['iifname "eth1"', 'ip6 saddr fc02::1', 'ip6 daddr fc00::1', 'return'] + [f'iifname "{in_interface}"', 'ip6 daddr fc00::1', 'dnat to fc01::1'], + [f'iifname "{in_interface}"', 'ip6 saddr fc02::1', 'ip6 daddr fc00::1', 'return'] ] + self.verify_nftables(nftables_search, 'ip6 vyos_nat') + # T8939 - remove inbound-interface name + self.cli_delete(dst_path + ['rule', '2', 'inbound-interface', 'name']) + self.cli_commit() + + nftables_search = [ + [f'iifname "{in_interface}"', 'ip6 daddr fc00::1', 'dnat to fc01::1'], + ['ip6 saddr fc02::1', 'ip6 daddr fc00::1', 'return'] + ] self.verify_nftables(nftables_search, 'ip6 vyos_nat') def test_destination_nat66_protocol(self): |
