tools: Allow deleting of interfaces

The frr-reload script currently deletes configurations
line-by-line under an interface context, if the interface was removed.
This approach fails when the interface has already been removed from the system.

This change enables whole interface removal using a single command
(no interface <interface-name>), simplifying the reload process and
reducing reload errors.

Signed-off-by: Julian Klaiber <jklaiber@open-systems.com>
This commit is contained in:
Julian Klaiber 2024-09-02 15:13:40 +02:00
parent 0bc373c573
commit f1a1703a0a

View file

@ -1757,12 +1757,13 @@ def compare_context_objects(newconf, running):
delete_bgpd = True
lines_to_del.append((running_ctx_keys, None))
# We cannot do 'no interface' or 'no vrf' in FRR, and so deal with it
elif (
running_ctx_keys[0].startswith("interface")
or running_ctx_keys[0].startswith("vrf")
or running_ctx_keys[0].startswith("router pim")
):
elif running_ctx_keys[0].startswith("interface"):
lines_to_del.append((running_ctx_keys, None))
# We cannot do 'no vrf' in FRR, and so deal with it
elif running_ctx_keys[0].startswith("vrf") or running_ctx_keys[
0
].startswith("router pim"):
for line in running_ctx.lines:
lines_to_del.append((running_ctx_keys, line))