diff options
author | Mark Royds <github@mnr.cc> | 2021-05-23 11:20:56 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-05-24 10:45:42 +0200 |
commit | 856800bf75d408700d704921ffd592f6c99f84be (patch) | |
tree | a3cc078d386fbe76f85d5ffc1157118fe8456284 /src/conf_mode/service_router-advert.py | |
parent | 8ff36fa268f852acde5f2cb29bbeca31bf5212c4 (diff) | |
download | vyos-1x-856800bf75d408700d704921ffd592f6c99f84be.tar.gz vyos-1x-856800bf75d408700d704921ffd592f6c99f84be.zip |
router-advert: T3561: add support for specific routes
Co-authored-by: Mark Royds <mark.royds@vitaminit.co.uk>
(cherry picked from commit c17f259d09abd2bf632d09400fe8deb4c2781d32)
Diffstat (limited to 'src/conf_mode/service_router-advert.py')
-rwxr-xr-x | src/conf_mode/service_router-advert.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/conf_mode/service_router-advert.py b/src/conf_mode/service_router-advert.py index 65eb11ce3..1f6d90fb4 100755 --- a/src/conf_mode/service_router-advert.py +++ b/src/conf_mode/service_router-advert.py @@ -40,11 +40,14 @@ def get_config(config=None): # We have gathered the dict representation of the CLI, but there are default # options which we need to update into the dictionary retrived. default_interface_values = defaults(base + ['interface']) - # we deal with prefix defaults later on + # we deal with prefix, route defaults later on if 'prefix' in default_interface_values: del default_interface_values['prefix'] - + if 'route' in default_interface_values: + del default_interface_values['route'] + default_prefix_values = defaults(base + ['interface', 'prefix']) + default_route_values = defaults(base + ['interface', 'route']) if 'interface' in rtradv: for interface in rtradv['interface']: @@ -55,6 +58,11 @@ def get_config(config=None): for prefix in rtradv['interface'][interface]['prefix']: rtradv['interface'][interface]['prefix'][prefix] = dict_merge( default_prefix_values, rtradv['interface'][interface]['prefix'][prefix]) + + if 'route' in rtradv['interface'][interface]: + for route in rtradv['interface'][interface]['route']: + rtradv['interface'][interface]['route'][route] = dict_merge( + default_route_values, rtradv['interface'][interface]['route'][route]) if 'name_server' in rtradv['interface'][interface]: # always use a list when dealing with nameservers - eases the template generation |