diff options
author | Christian Poessinger <christian@poessinger.com> | 2021-11-27 19:34:07 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-11-27 19:34:07 +0100 |
commit | 5e38895c906f05ecd3815573f07106a9ccab145a (patch) | |
tree | 8ae4ca088ae3646720422e84f7b46b0ac0c6a36b /python | |
parent | 3800ea910a72a4d1a78b63f235980d9414747816 (diff) | |
download | vyos-1x-5e38895c906f05ecd3815573f07106a9ccab145a.tar.gz vyos-1x-5e38895c906f05ecd3815573f07106a9ccab145a.zip |
frr: alwaws try to commit connfig 5 times
As a result to some frr-reload bugs workarounded in commit 3800ea91 or fe0038c2
this commit adds the workaround in general.
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/frr.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/python/vyos/frr.py b/python/vyos/frr.py index 119ea8b50..7bad2b0b6 100644 --- a/python/vyos/frr.py +++ b/python/vyos/frr.py @@ -216,13 +216,8 @@ def reload_configuration(config, daemon=None): def save_configuration(): - """Save FRR configuration to /run/frr/config/frr.conf - It save configuration on each commit. T3217 - """ - - cmd(f'{path_vtysh} -n -w') - - return + """ T3217: Save FRR configuration to /run/frr/config/frr.conf """ + return cmd(f'{path_vtysh} -n -w') def execute(command): @@ -457,7 +452,16 @@ class FRRConfig: LOG.debug('commit_configuration: Commiting configuration') for i, e in enumerate(self.config): LOG.debug(f'commit_configuration: new_config {i:3} {e}') - reload_configuration('\n'.join(self.config), daemon=daemon) + + # https://github.com/FRRouting/frr/issues/10132 + # https://github.com/FRRouting/frr/issues/10133 + count = 0 + while count <= 5: + count += 1 + try: + reload_configuration('\n'.join(self.config), daemon=daemon) + except: + pass def modify_section(self, start_pattern, replacement='!', stop_pattern=r'\S+', remove_stop_mark=False, count=0): if isinstance(replacement, str): |