summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli/test_nat66.py
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-05-28 22:03:40 +0200
committerChristian Breunig <christian@breunig.cc>2026-05-28 22:03:40 +0200
commit960e730bdde2f3561aa3cff8941e2f9db8eb32d8 (patch)
tree36b8b4a54fbfe1b5ddd60e80b2fdfdafc8466f1c /smoketest/scripts/cli/test_nat66.py
parentcd619d4c355c9158497951231b1c993f8a7d26a9 (diff)
downloadvyos-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-xsmoketest/scripts/cli/test_nat66.py19
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):