summaryrefslogtreecommitdiff
path: root/python/vyos/frr.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-11-27 19:34:07 +0100
committerChristian Poessinger <christian@poessinger.com>2021-11-27 19:34:07 +0100
commit5e38895c906f05ecd3815573f07106a9ccab145a (patch)
tree8ae4ca088ae3646720422e84f7b46b0ac0c6a36b /python/vyos/frr.py
parent3800ea910a72a4d1a78b63f235980d9414747816 (diff)
downloadvyos-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/vyos/frr.py')
-rw-r--r--python/vyos/frr.py20
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):