From 14c42992bb66923c52e7bf849afb29782c32da1f Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Tue, 17 Dec 2024 20:15:10 +0100 Subject: bgp: T6746: remove debug code --- src/conf_mode/protocols_bgp.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/conf_mode/protocols_bgp.py b/src/conf_mode/protocols_bgp.py index ae32dd839..60f3f2ad0 100755 --- a/src/conf_mode/protocols_bgp.py +++ b/src/conf_mode/protocols_bgp.py @@ -176,11 +176,6 @@ def verify_afi(peer_config, bgp_config): return False def verify(config_dict): - - print('====== verify() ======') - import pprint - pprint.pprint(config_dict) - if not has_frr_protocol_in_dict(config_dict, 'bgp'): return None -- cgit v1.2.3 From bbae4221e39d81e81136c047dfa487a21d0022a9 Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Tue, 17 Dec 2024 20:17:02 +0100 Subject: frrender: T6746: ensure there are no empty lines in the rendered FRR configuration --- python/vyos/frrender.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/python/vyos/frrender.py b/python/vyos/frrender.py index 95d6c7243..7221d5053 100644 --- a/python/vyos/frrender.py +++ b/python/vyos/frrender.py @@ -136,7 +136,7 @@ class FRRender: output += '\n' if 'vrf' in config and 'name' in config['vrf']: - output += render_to_string('frr/zebra.vrf.route-map.frr.j2', config['vrf']) + '\n' + output += render_to_string('frr/zebra.vrf.route-map.frr.j2', config['vrf']) for vrf, vrf_config in config['vrf']['name'].items(): if 'protocols' not in vrf_config: continue @@ -145,6 +145,12 @@ class FRRender: output += inline_helper(vrf_config['protocols']) + # remove any accidently added empty newline to not confuse FRR + output = os.linesep.join([s for s in output.splitlines() if s]) + + if '!!' in output: + raise ConfigError('FRR configuration contains "!!" which is not allowed') + debug(output) debug('======< RENDERING CONFIG COMPLETE >======') write_file(self._frr_conf, output) -- cgit v1.2.3 From a49540ef7615315ebe5886a8544903e94fec4523 Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Tue, 17 Dec 2024 20:17:39 +0100 Subject: frrender: T6746: do not render candidate FRR config to running FRR config file path --- python/vyos/frrender.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/python/vyos/frrender.py b/python/vyos/frrender.py index 7221d5053..0c9dde315 100644 --- a/python/vyos/frrender.py +++ b/python/vyos/frrender.py @@ -19,8 +19,11 @@ Library used to interface with FRRs mgmtd introduced in version 10.0 import os +from time import sleep + from vyos.defaults import frr_debug_enable from vyos.utils.file import write_file +from vyos.utils.process import cmd from vyos.utils.process import rc_cmd from vyos.template import render_to_string from vyos import ConfigError @@ -53,7 +56,7 @@ zebra_daemon = 'zebra' class FRRender: def __init__(self): - self._frr_conf = '/run/frr/config/frr.conf' + self._frr_conf = '/run/frr/config/vyos.frr.conf' def generate(self, config): if not isinstance(config, dict): @@ -154,29 +157,25 @@ class FRRender: debug(output) debug('======< RENDERING CONFIG COMPLETE >======') write_file(self._frr_conf, output) - if DEBUG_ON: write_file('/tmp/frr.conf.debug', output) - def apply(self): + def apply(self, count_max=5): count = 0 - count_max = 5 emsg = '' while count < count_max: count += 1 debug(f'FRR: Reloading configuration - tries: {count} | Python class ID: {id(self)}') - cmdline = '/usr/lib/frr/frr-reload.py --reload' - if DEBUG_ON: - cmdline += ' --debug' + if DEBUG_ON: cmdline += ' --debug' rc, emsg = rc_cmd(f'{cmdline} {self._frr_conf}') if rc != 0: - debug('FRR configuration reload failed, retrying') + sleep(2) continue debug(emsg) debug('======< DONE APPLYING CONFIG >======') break + if count >= count_max: raise ConfigError(emsg) - def save_configuration(): - """ T3217: Save FRR configuration to /run/frr/config/frr.conf """ + # T3217: Save FRR configuration to /run/frr/config/frr.conf return cmd('/usr/bin/vtysh -n --writeconfig') -- cgit v1.2.3 From 14ae33a55298e2a5264b26d20c8f8f06d3b2266a Mon Sep 17 00:00:00 2001 From: Christian Breunig Date: Tue, 17 Dec 2024 20:18:21 +0100 Subject: op-mode: T6746: add "show log frr" and "monitor log frr" commands --- op-mode-definitions/monitor-log.xml.in | 6 ++++++ op-mode-definitions/show-log.xml.in | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/op-mode-definitions/monitor-log.xml.in b/op-mode-definitions/monitor-log.xml.in index 66b7ecb2f..f6b70be32 100644 --- a/op-mode-definitions/monitor-log.xml.in +++ b/op-mode-definitions/monitor-log.xml.in @@ -114,6 +114,12 @@ journalctl --no-hostname --boot --follow --unit uacctd.service + + + Monitor last lines of FRRouting suite log + + journalctl --no-hostname --boot --follow --unit frr.service + Monitor last lines of IP over Ethernet server log diff --git a/op-mode-definitions/show-log.xml.in b/op-mode-definitions/show-log.xml.in index b032f5e38..9dcebb6af 100755 --- a/op-mode-definitions/show-log.xml.in +++ b/op-mode-definitions/show-log.xml.in @@ -533,6 +533,12 @@ journalctl --no-hostname --boot --unit uacctd.service + + + Show log for FRRouting suite + + journalctl --no-hostname --boot --unit frr.service + Show log for HTTPs -- cgit v1.2.3