From 39c661a063704af195e4c9b84598f10b6ffbb6f5 Mon Sep 17 00:00:00 2001 From: Kuldeep Kashyap Date: Tue, 14 Sep 2021 16:56:37 +0530 Subject: [PATCH] tests: Framework changes to support bgp vrf dynamic route leak automation 1. Enhance framework to support bgp vrf dynamic route leak automation Signed-off-by: Kuldeep Kashyap --- tests/topotests/lib/bgp.py | 10 ++-- tests/topotests/lib/common_config.py | 68 ++++++++++++++-------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/tests/topotests/lib/bgp.py b/tests/topotests/lib/bgp.py index 34afa0d2c1..4dd44e3e9e 100644 --- a/tests/topotests/lib/bgp.py +++ b/tests/topotests/lib/bgp.py @@ -991,11 +991,11 @@ def __create_bgp_unicast_address_family( config_data.append("no {} allowas-in {}".format(neigh_cxt, allow_as_in)) if "shutdown" in peer: - shut_val = peer["shutdown"] - if shut_val is True: - config_data.append("{} shutdown".format(neigh_cxt)) - elif shut_val is False: - config_data.append("no {} shutdown".format(neigh_cxt)) + config_data.append( + "{} {} shutdown".format( + "no" if not peer["shutdown"] else "", neigh_cxt + ) + ) if prefix_lists: for prefix_list in prefix_lists: diff --git a/tests/topotests/lib/common_config.py b/tests/topotests/lib/common_config.py index 005896b01c..0b97637c1e 100644 --- a/tests/topotests/lib/common_config.py +++ b/tests/topotests/lib/common_config.py @@ -1505,11 +1505,9 @@ def create_vrf_cfg(tgen, topo, input_dict=None, build=False): config_data = [] if "vrfs" in c_data: for vrf in c_data["vrfs"]: - del_action = vrf.setdefault("delete", False) name = vrf.setdefault("name", None) table_id = vrf.setdefault("id", None) - vni = vrf.setdefault("vni", None) - del_vni = vrf.setdefault("no_vni", None) + del_action = vrf.setdefault("delete", False) if del_action: # Kernel cmd- Add VRF and table @@ -1543,43 +1541,45 @@ def create_vrf_cfg(tgen, topo, input_dict=None, build=False): ) rnode.run(cmd) - if "links" in c_data: - for destRouterLink, data in sorted( - c_data["links"].items() - ): - # Loopback interfaces - if "type" in data and data["type"] == "loopback": - interface_name = destRouterLink - else: - interface_name = data["interface"] + for vrf in c_data["vrfs"]: + vni = vrf.setdefault("vni", None) + del_vni = vrf.setdefault("no_vni", None) - if "vrf" in data: - vrf_list = data["vrf"] + if "links" in c_data: + for destRouterLink, data in sorted(c_data["links"].items()): + # Loopback interfaces + if "type" in data and data["type"] == "loopback": + interface_name = destRouterLink + else: + interface_name = data["interface"] - if type(vrf_list) is not list: - vrf_list = [vrf_list] + if "vrf" in data: + vrf_list = data["vrf"] - for _vrf in vrf_list: - cmd = "ip link set {} master {}".format( - interface_name, _vrf - ) + if type(vrf_list) is not list: + vrf_list = [vrf_list] - logger.info( - "[DUT: %s]: Running" " kernel cmd [%s]", - c_router, - cmd, - ) - rnode.run(cmd) + for _vrf in vrf_list: + cmd = "ip link set {} master {}".format( + interface_name, _vrf + ) - if vni: - config_data.append("vrf {}".format(vrf["name"])) - cmd = "vni {}".format(vni) - config_data.append(cmd) + logger.info( + "[DUT: %s]: Running" " kernel cmd [%s]", + c_router, + cmd, + ) + rnode.run(cmd) - if del_vni: - config_data.append("vrf {}".format(vrf["name"])) - cmd = "no vni {}".format(del_vni) - config_data.append(cmd) + if vni: + config_data.append("vrf {}".format(vrf["name"])) + cmd = "vni {}".format(vni) + config_data.append(cmd) + + if del_vni: + config_data.append("vrf {}".format(vrf["name"])) + cmd = "no vni {}".format(del_vni) + config_data.append(cmd) if config_data: config_data_dict[c_router] = config_data