diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2023-07-29 14:01:31 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-29 14:01:31 -0400 |
| commit | f3a4a85da70127dab873a7fd7fe48a7067a7f82e (patch) | |
| tree | d974f46b363be067a052d98fc1fe0e09d40ae947 /tools/frr-reload.py | |
| parent | 32bd81e365c00afd2821d0eedecc3483dc648d1a (diff) | |
| parent | 96f76f7663e1294c64fb7ab4856140c619dc0e48 (diff) | |
Merge pull request #14103 from opensourcerouting/reload-keychain
tools: fix key chain reload removal
Diffstat (limited to 'tools/frr-reload.py')
| -rwxr-xr-x | tools/frr-reload.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/frr-reload.py b/tools/frr-reload.py index a0ddeb72b1..17bf73316c 100755 --- a/tools/frr-reload.py +++ b/tools/frr-reload.py @@ -1567,6 +1567,7 @@ def compare_context_objects(newconf, running): candidates_to_add = [] delete_bgpd = False area_stub_no_sum = "area (\S+) stub no-summary" + deleted_keychains = [] # Find contexts that are in newconf but not in running # Find contexts that are in running but not in newconf @@ -1617,6 +1618,22 @@ def compare_context_objects(newconf, running): ): continue + # Check if key chain is being deleted: + # - If it is being deleted then avoid deleting its contexts + # - Else delete its configuration without removing the root node + elif ( + running_ctx_keys[0].startswith("key chain ") + and len(running_ctx_keys) == 1 + ): + deleted_keychains.append(running_ctx_keys[0]) + lines_to_del.append((running_ctx_keys, None)) + elif ( + running_ctx_keys[0].startswith("key chain ") + and len(running_ctx_keys) > 1 + and running_ctx_keys[0] in deleted_keychains + ): + continue + # Delete an entire vni sub-context under "address-family l2vpn evpn" elif ( "router bgp" in running_ctx_keys[0] |
