summaryrefslogtreecommitdiff
path: root/python
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 /python
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 'python')
-rw-r--r--python/vyos/nat.py5
1 files changed, 2 insertions, 3 deletions
diff --git a/python/vyos/nat.py b/python/vyos/nat.py
index 7be957a0c..0a252bbd8 100644
--- a/python/vyos/nat.py
+++ b/python/vyos/nat.py
@@ -37,7 +37,7 @@ def parse_nat_rule(rule_conf, rule_id, nat_type, ipv6=False):
operator = '!='
iiface = iiface[1:]
output.append(f'iifname {operator} {{{iiface}}}')
- else:
+ elif 'group' in rule_conf['inbound_interface']:
iiface = rule_conf['inbound_interface']['group']
if iiface[0] == '!':
operator = '!='
@@ -52,7 +52,7 @@ def parse_nat_rule(rule_conf, rule_id, nat_type, ipv6=False):
operator = '!='
oiface = oiface[1:]
output.append(f'oifname {operator} {{{oiface}}}')
- else:
+ elif 'group' in rule_conf['outbound_interface']:
oiface = rule_conf['outbound_interface']['group']
if oiface[0] == '!':
operator = '!='
@@ -80,7 +80,6 @@ def parse_nat_rule(rule_conf, rule_id, nat_type, ipv6=False):
if redirect_port:
translation_output.append(f'to {redirect_port}')
else:
-
translation_prefix = nat_type[:1]
translation_output = [f'{translation_prefix}nat']