From 2239e47fb3b2ba66d9ec7ff1a4bf5f5cb512ff83 Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Sun, 11 Apr 2021 17:39:57 +0200
Subject: bgp: T3344: handle FRR vrf daemon configuration more elegant

---
 src/conf_mode/protocols_bgp.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/conf_mode/protocols_bgp.py b/src/conf_mode/protocols_bgp.py
index 262bb4711..ae210cf20 100755
--- a/src/conf_mode/protocols_bgp.py
+++ b/src/conf_mode/protocols_bgp.py
@@ -209,11 +209,12 @@ def apply(bgp):
     frr_cfg = frr.FRRConfig()
     frr_cfg.load_configuration(frr_daemon)
 
+    # Generate empty helper string which can be ammended to FRR commands, it
+    # will be either empty (default VRF) or contain the "vrf <name" statement
+    vrf = ''
     if 'vrf' in bgp:
-        vrf = bgp['vrf']
-        frr_cfg.modify_section(f'^router bgp \d+ vrf {vrf}$', '')
-    else:
-        frr_cfg.modify_section('^router bgp \d+$', '')
+        vrf = ' vrf ' + bgp['vrf']
+    frr_cfg.modify_section(f'^router bgp \d+{vrf}$', '')
 
     frr_cfg.add_before(r'(ip prefix-list .*|route-map .*|line vty)', bgp['new_frr_config'])
     frr_cfg.commit_configuration(frr_daemon)
-- 
cgit v1.2.3