diff options
| author | bl0way <william.blonay@gmail.com> | 2025-10-24 13:19:16 +0200 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2025-10-29 08:15:28 +0100 |
| commit | b0ffe03b917c894f684876facaacb48cdbdba690 (patch) | |
| tree | 0ee905a2c96a3035808ac7ed00b7e15e38ec7c2f /src | |
| parent | 761968da584199e74a23d6381b3f6b400906083f (diff) | |
| download | vyos-1x-b0ffe03b917c894f684876facaacb48cdbdba690.tar.gz vyos-1x-b0ffe03b917c894f684876facaacb48cdbdba690.zip | |
frr: T7896: Configure frr profile with 'system frr profile' command
Co-authored-by: Christian Breunig <christian@breunig.cc>
Diffstat (limited to 'src')
| -rwxr-xr-x | src/conf_mode/system_frr.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/conf_mode/system_frr.py b/src/conf_mode/system_frr.py index 06af37ad8..5365ac294 100755 --- a/src/conf_mode/system_frr.py +++ b/src/conf_mode/system_frr.py @@ -19,12 +19,15 @@ from sys import exit from vyos import ConfigError from vyos.base import Warning from vyos.config import Config +from vyos.frrender import FRRender +from vyos.frrender import get_frrender_dict from vyos.logger import syslog from vyos.template import render_to_string from vyos.utils.boot import boot_configuration_complete from vyos.utils.file import read_file from vyos.utils.file import write_file from vyos.utils.process import call +from vyos.utils.process import is_systemd_service_running from vyos import airbag airbag.enable() @@ -42,7 +45,8 @@ def get_config(config=None): frr_config = conf.get_config_dict(base, key_mangling=('-', '_'), get_first_key=True, with_recursive_defaults=True) - + # get FRR configuration + frr_config['frr_dict'] = get_frrender_dict(conf) return frr_config def verify(frr_config): @@ -60,7 +64,17 @@ def generate(frr_config): write_file(config_file, daemons_config_new) frr_config['config_file_changed'] = True + # profile could be automatically generated by frr in frr.conf + # and needs to be updated as it is taking precedence + if 'frr_dict' in frr_config and not is_systemd_service_running('vyos-configd.service'): + FRRender().generate(frr_config['frr_dict']) + return None + def apply(frr_config): + # applying the profile configuration if necessary + if 'frr_dict' in frr_config and not is_systemd_service_running('vyos-configd.service'): + FRRender().apply() + # display warning to user if boot_configuration_complete() and frr_config.get('config_file_changed'): # Since FRR restart is not safe thing, better to give |
