diff options
| author | Christian Poessinger <christian@poessinger.com> | 2021-11-27 19:36:34 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-27 19:36:34 +0100 | 
| commit | 59dc14bee7ca6e4fd2bbabe5c5ae7518839e7a80 (patch) | |
| tree | 8164c4cb49efaf0be512e6133259f4b4cfac6009 /python | |
| parent | 1df8ba611f04c46d49f4cf70d6fa22cfef089392 (diff) | |
| parent | 5e38895c906f05ecd3815573f07106a9ccab145a (diff) | |
| download | vyos-1x-59dc14bee7ca6e4fd2bbabe5c5ae7518839e7a80.tar.gz vyos-1x-59dc14bee7ca6e4fd2bbabe5c5ae7518839e7a80.zip  | |
Merge pull request #1089 from c-po/t3753-frr8
T3753 - CLI adjustments for FRR8.1
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/frr.py | 26 | 
1 files changed, 16 insertions, 10 deletions
diff --git a/python/vyos/frr.py b/python/vyos/frr.py index df6849472..7bad2b0b6 100644 --- a/python/vyos/frr.py +++ b/python/vyos/frr.py @@ -84,12 +84,14 @@ if DEBUG:      LOG.addHandler(ch2)  _frr_daemons = ['zebra', 'bgpd', 'fabricd', 'isisd', 'ospf6d', 'ospfd', 'pbrd', -                'pimd', 'ripd', 'ripngd', 'sharpd', 'staticd', 'vrrpd', 'ldpd'] +                'pimd', 'ripd', 'ripngd', 'sharpd', 'staticd', 'vrrpd', 'ldpd', +                'bfdd']  path_vtysh = '/usr/bin/vtysh'  path_frr_reload = '/usr/lib/frr/frr-reload.py'  path_config = '/run/frr' +default_add_before = r'(ip prefix-list .*|route-map .*|line vty|end)'  class FrrError(Exception):      pass @@ -214,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): @@ -455,9 +452,18 @@ 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) -    def modify_section(self, start_pattern, replacement=[], stop_pattern=r'\S+', remove_stop_mark=False, count=0): +        # 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):              replacement = replacement.split('\n')          elif not isinstance(replacement, list):  | 
