NSX|V prevent adding illegal routes
The nsx-v backend does not suport adding a route where the nexthop is part of the destination. This patch skips it (instead of failing at the backend) and also skips a tempest test that tries the same thing Change-Id: I41181d43cffbf0e5cbb63069ed864683834c77b9
This commit is contained in:
parent
5e9d41ac17
commit
1d5af38ed7
@ -23,6 +23,7 @@ r="^(?!.*"
|
|||||||
|
|
||||||
r="$r(?:tempest\.api\.network\.test_ports\.PortsTestJSON\.test_create_update_port_with_second_ip.*)"
|
r="$r(?:tempest\.api\.network\.test_ports\.PortsTestJSON\.test_create_update_port_with_second_ip.*)"
|
||||||
r="$r|(?:tempest\.api\.network\.test_floating_ips\.FloatingIPTestJSON\.test_create_update_floatingip_with_port_multiple_ip_address.*)"
|
r="$r|(?:tempest\.api\.network\.test_floating_ips\.FloatingIPTestJSON\.test_create_update_floatingip_with_port_multiple_ip_address.*)"
|
||||||
|
r="$r|(?:tempest\.api\.network\.test_routers\.RoutersTest\.test_update_delete_extra_route.*)"
|
||||||
|
|
||||||
# End list of exclusions.
|
# End list of exclusions.
|
||||||
r="$r)"
|
r="$r)"
|
||||||
|
@ -2225,6 +2225,14 @@ def update_routes(edge_manager, context, router_id, routes, nexthop=None):
|
|||||||
else:
|
else:
|
||||||
vnic_binding = nsxv_db.get_edge_vnic_binding(
|
vnic_binding = nsxv_db.get_edge_vnic_binding(
|
||||||
context.session, edge_id, route['network_id'])
|
context.session, edge_id, route['network_id'])
|
||||||
|
if (netaddr.IPAddress(route['nexthop']) in
|
||||||
|
netaddr.IPNetwork(route['destination'])):
|
||||||
|
# check that the nexthop is not in the destination
|
||||||
|
LOG.error("Cannot add route with nexthop %(nexthop)s "
|
||||||
|
"contained in the destination: %(dest)s.",
|
||||||
|
{'dest': route['destination'],
|
||||||
|
'nexthop': route['nexthop']})
|
||||||
|
continue
|
||||||
if vnic_binding and vnic_binding.get('vnic_index'):
|
if vnic_binding and vnic_binding.get('vnic_index'):
|
||||||
edge_routes.append({
|
edge_routes.append({
|
||||||
'vnic_index': vnic_binding['vnic_index'],
|
'vnic_index': vnic_binding['vnic_index'],
|
||||||
|
Loading…
Reference in New Issue
Block a user