summaryrefslogtreecommitdiff
path: root/src/conf_mode/protocols_static.py
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-11-25 16:22:57 +0100
committerChristian Breunig <christian@breunig.cc>2025-11-25 16:22:57 +0100
commitcc4d2167cf756d37cc60c3e415b2ac30f622b85b (patch)
treed201e0688ea898eccd7f8ae774ec05b278317b44 /src/conf_mode/protocols_static.py
parentfdda826b48688e253c30d3578ca5edd45b034ab0 (diff)
downloadvyos-1x-cc4d2167cf756d37cc60c3e415b2ac30f622b85b.tar.gz
vyos-1x-cc4d2167cf756d37cc60c3e415b2ac30f622b85b.zip
frr: T8034: use dict_search() for routing protocols to check if VRF is used
dict_search() is save when passing in keys that do not exist in the dict we are working on.
Diffstat (limited to 'src/conf_mode/protocols_static.py')
-rwxr-xr-xsrc/conf_mode/protocols_static.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/conf_mode/protocols_static.py b/src/conf_mode/protocols_static.py
index 6310be13d..144c64efa 100755
--- a/src/conf_mode/protocols_static.py
+++ b/src/conf_mode/protocols_static.py
@@ -25,8 +25,9 @@ from vyos.configverify import verify_common_route_maps
from vyos.configverify import verify_vrf
from vyos.frrender import FRRender
from vyos.frrender import get_frrender_dict
-from vyos.utils.process import is_systemd_service_running
+from vyos.utils.dict import dict_search
from vyos.utils.file import write_file
+from vyos.utils.process import is_systemd_service_running
from vyos.template import render
from vyos import ConfigError
from vyos import airbag
@@ -53,7 +54,8 @@ def verify(config_dict):
vrf = config_dict['vrf_context']
# eqivalent of the C foo ? 'a' : 'b' statement
- static = vrf and config_dict['vrf']['name'][vrf]['protocols']['static'] or config_dict['static']
+ static = vrf and dict_search(f'vrf.name.{vrf}.protocols.static',
+ config_dict) or config_dict['static']
static['policy'] = config_dict['policy']
verify_common_route_maps(static)
@@ -94,7 +96,8 @@ def generate(config_dict):
vrf = config_dict['vrf_context']
# eqivalent of the C foo ? 'a' : 'b' statement
- static = vrf and config_dict['vrf']['name'][vrf]['protocols']['static'] or config_dict['static']
+ static = vrf and dict_search(f'vrf.name.{vrf}.protocols.static',
+ config_dict) or config_dict['static']
# Collect interfaces that have DHCP configuration for DHCP hooks
dhcp_interfaces = set()