diff options
Diffstat (limited to 'tests/topotests/lib/topojson.py')
| -rw-r--r-- | tests/topotests/lib/topojson.py | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/tests/topotests/lib/topojson.py b/tests/topotests/lib/topojson.py index fcc6c19868..003a971373 100644 --- a/tests/topotests/lib/topojson.py +++ b/tests/topotests/lib/topojson.py @@ -34,7 +34,7 @@ from lib.topolog import logger from lib.common_config import ( number_to_row, number_to_column, - load_config_to_router, + load_config_to_routers, create_interfaces_cfg, create_static_routes, create_prefix_lists, @@ -293,6 +293,24 @@ def build_topo_from_json(tgen, topo): ) +def linux_intf_config_from_json(tgen, topo): + """Configure interfaces from linux based on topo.""" + routers = topo["routers"] + for rname in routers: + router = tgen.gears[rname] + links = routers[rname]["links"] + for rrname in links: + link = links[rrname] + if rrname == "lo": + lname = "lo" + else: + lname = link["interface"] + if "ipv4" in link: + router.run("ip addr add {} dev {}".format(link["ipv4"], lname)) + if "ipv6" in link: + router.run("ip -6 addr add {} dev {}".format(link["ipv6"], lname)) + + def build_config_from_json(tgen, topo, save_bkup=True): """ Reads initial configuraiton from JSON for each router, builds @@ -324,10 +342,8 @@ def build_config_from_json(tgen, topo, save_bkup=True): func_dict.get(func_type)(tgen, data, build=True) - for router in sorted(topo["routers"].keys()): - logger.debug("Configuring router {}...".format(router)) - - result = load_config_to_router(tgen, router, save_bkup) - if not result: - logger.info("Failed while configuring {}".format(router)) - pytest.exit(1) + routers = sorted(topo["routers"].keys()) + result = load_config_to_routers(tgen, routers, save_bkup) + if not result: + logger.info("build_config_from_json: failed to configure topology") + pytest.exit(1) |
