]> git.proxmox.com Git - mirror_frr.git/commitdiff
tools: reload handle removal of entire address-family section under BGP
authorDaniel Walton <dwalton@cumulusnetworks.com>
Wed, 17 May 2017 00:16:09 +0000 (00:16 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Wed, 17 May 2017 00:16:09 +0000 (00:16 +0000)
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
When an entire address-family section is removed from under BGP, we
cannot just issue 'no address-family foo bar' as address-family line
doesn't support 'no'. We have to delete the individual lines under the
address-family.

tools/frr-reload.py

index 0e71eaa04ceddb44ba722e0f309ab139666746f7..1ef6920d0698f25874749c1d45c618304cbda695 100755 (executable)
@@ -814,6 +814,14 @@ def compare_context_objects(newconf, running):
             elif "router bgp" in running_ctx_keys[0] and len(running_ctx_keys) > 1 and delete_bgpd:
                 continue
 
+            elif ("router bgp" in running_ctx_keys[0] and
+                  len(running_ctx_keys) > 1 and
+                  running_ctx_keys[1].startswith('address-family')):
+                # There's no 'no address-family' support and so we have to
+                # delete each line individually again
+                for line in running_ctx.lines:
+                    lines_to_del.append((running_ctx_keys, line))
+
             # Non-global context
             elif running_ctx_keys and not any("address-family" in key for key in running_ctx_keys):
                 lines_to_del.append((running_ctx_keys, None))