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 <kashyapk@vmware.com>
This commit is contained in:
Kuldeep Kashyap 2021-09-14 16:56:37 +05:30
parent 25d7130380
commit 39c661a063
2 changed files with 39 additions and 39 deletions

View File

@ -991,11 +991,11 @@ def __create_bgp_unicast_address_family(
config_data.append("no {} allowas-in {}".format(neigh_cxt, allow_as_in)) config_data.append("no {} allowas-in {}".format(neigh_cxt, allow_as_in))
if "shutdown" in peer: if "shutdown" in peer:
shut_val = peer["shutdown"] config_data.append(
if shut_val is True: "{} {} shutdown".format(
config_data.append("{} shutdown".format(neigh_cxt)) "no" if not peer["shutdown"] else "", neigh_cxt
elif shut_val is False: )
config_data.append("no {} shutdown".format(neigh_cxt)) )
if prefix_lists: if prefix_lists:
for prefix_list in prefix_lists: for prefix_list in prefix_lists:

View File

@ -1505,11 +1505,9 @@ def create_vrf_cfg(tgen, topo, input_dict=None, build=False):
config_data = [] config_data = []
if "vrfs" in c_data: if "vrfs" in c_data:
for vrf in c_data["vrfs"]: for vrf in c_data["vrfs"]:
del_action = vrf.setdefault("delete", False)
name = vrf.setdefault("name", None) name = vrf.setdefault("name", None)
table_id = vrf.setdefault("id", None) table_id = vrf.setdefault("id", None)
vni = vrf.setdefault("vni", None) del_action = vrf.setdefault("delete", False)
del_vni = vrf.setdefault("no_vni", None)
if del_action: if del_action:
# Kernel cmd- Add VRF and table # Kernel cmd- Add VRF and table
@ -1543,43 +1541,45 @@ def create_vrf_cfg(tgen, topo, input_dict=None, build=False):
) )
rnode.run(cmd) rnode.run(cmd)
if "links" in c_data: for vrf in c_data["vrfs"]:
for destRouterLink, data in sorted( vni = vrf.setdefault("vni", None)
c_data["links"].items() del_vni = vrf.setdefault("no_vni", None)
):
# Loopback interfaces
if "type" in data and data["type"] == "loopback":
interface_name = destRouterLink
else:
interface_name = data["interface"]
if "vrf" in data: if "links" in c_data:
vrf_list = data["vrf"] 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: if "vrf" in data:
vrf_list = [vrf_list] vrf_list = data["vrf"]
for _vrf in vrf_list: if type(vrf_list) is not list:
cmd = "ip link set {} master {}".format( vrf_list = [vrf_list]
interface_name, _vrf
)
logger.info( for _vrf in vrf_list:
"[DUT: %s]: Running" " kernel cmd [%s]", cmd = "ip link set {} master {}".format(
c_router, interface_name, _vrf
cmd, )
)
rnode.run(cmd)
if vni: logger.info(
config_data.append("vrf {}".format(vrf["name"])) "[DUT: %s]: Running" " kernel cmd [%s]",
cmd = "vni {}".format(vni) c_router,
config_data.append(cmd) cmd,
)
rnode.run(cmd)
if del_vni: if vni:
config_data.append("vrf {}".format(vrf["name"])) config_data.append("vrf {}".format(vrf["name"]))
cmd = "no vni {}".format(del_vni) cmd = "vni {}".format(vni)
config_data.append(cmd) 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: if config_data:
config_data_dict[c_router] = config_data config_data_dict[c_router] = config_data