if tgen.routers_have_failure():
pytest.skip(tgen.errors)
- router = tgen.gears["r2"]
+ r1 = tgen.gears["r1"]
+ r2 = tgen.gears["r2"]
def _bgp_converge(router):
output = json.loads(router.vtysh_cmd("show ip bgp neighbor 192.168.255.1 json"))
}
return topotest.json_cmp(output, expected)
- def _bgp_aggregate_address_has_metric(router):
+ def _bgp_aggregate_address_has_metric(router, metric):
output = json.loads(router.vtysh_cmd("show ip bgp 172.16.255.0/24 json"))
- expected = {"paths": [{"metric": 123}]}
+ expected = {"paths": [{"metric": metric}]}
return topotest.json_cmp(output, expected)
- test_func = functools.partial(_bgp_converge, router)
- success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
-
- assert result is None, 'Failed to see bgp convergence in "{}"'.format(router)
-
- test_func = functools.partial(_bgp_aggregate_address_has_metric, router)
- success, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
-
- assert (
- result is None
- ), 'Failed to see applied metric for aggregated prefix in "{}"'.format(router)
+ test_func = functools.partial(_bgp_converge, r2)
+ _, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
+ assert result is None, "Failed to see bgp convergence in r2"
+
+ test_func = functools.partial(_bgp_aggregate_address_has_metric, r2, 123)
+ _, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
+ assert result is None, "Failed to see applied metric for aggregated prefix in r2"
+
+ r1.vtysh_cmd(
+ """
+ configure terminal
+ route-map aggr-rmap permit 10
+ set metric 666
+ """
+ )
+
+ test_func = functools.partial(_bgp_aggregate_address_has_metric, r2, 666)
+ _, result = topotest.run_and_expect(test_func, None, count=30, wait=0.5)
+ assert result is None, "Failed to see applied metric for aggregated prefix in r2"
if __name__ == "__main__":