summaryrefslogtreecommitdiff
path: root/tests/topotests/lib/topojson.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/topotests/lib/topojson.py')
-rw-r--r--tests/topotests/lib/topojson.py32
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)