Merge "Add IP version support to all ip_lib code"
This commit is contained in:
commit
5962d825a6
|
@ -958,7 +958,8 @@ class DeviceManager(object):
|
|||
# ensure that the dhcp interface is first in the list
|
||||
if network.namespace is None:
|
||||
device = ip_lib.IPDevice(interface_name)
|
||||
device.route.pullup_route(interface_name)
|
||||
device.route.pullup_route(interface_name,
|
||||
ip_version=constants.IP_VERSION_4)
|
||||
|
||||
if self.conf.use_namespaces:
|
||||
self._set_default_route(network, interface_name)
|
||||
|
|
|
@ -469,12 +469,13 @@ class IpRouteCommand(IpDeviceCommandBase):
|
|||
|
||||
return retval
|
||||
|
||||
def pullup_route(self, interface_name):
|
||||
def pullup_route(self, interface_name, ip_version):
|
||||
"""Ensures that the route entry for the interface is before all
|
||||
others on the same subnet.
|
||||
"""
|
||||
options = [ip_version]
|
||||
device_list = []
|
||||
device_route_list_lines = self._run([],
|
||||
device_route_list_lines = self._run(options,
|
||||
('list',
|
||||
'proto', 'kernel',
|
||||
'dev', interface_name)
|
||||
|
@ -484,7 +485,7 @@ class IpRouteCommand(IpDeviceCommandBase):
|
|||
subnet = device_route_line.split()[0]
|
||||
except Exception:
|
||||
continue
|
||||
subnet_route_list_lines = self._run([],
|
||||
subnet_route_list_lines = self._run(options,
|
||||
('list',
|
||||
'proto', 'kernel',
|
||||
'match', subnet)
|
||||
|
@ -506,15 +507,15 @@ class IpRouteCommand(IpDeviceCommandBase):
|
|||
break
|
||||
|
||||
for (device, src) in device_list:
|
||||
self._as_root([], ('del', subnet, 'dev', device))
|
||||
self._as_root(options, ('del', subnet, 'dev', device))
|
||||
if (src != ''):
|
||||
self._as_root([],
|
||||
self._as_root(options,
|
||||
('append', subnet,
|
||||
'proto', 'kernel',
|
||||
'src', src,
|
||||
'dev', device))
|
||||
else:
|
||||
self._as_root([],
|
||||
self._as_root(options,
|
||||
('append', subnet,
|
||||
'proto', 'kernel',
|
||||
'dev', device))
|
||||
|
@ -552,10 +553,11 @@ class IpNeighCommand(IpDeviceCommandBase):
|
|||
'lladdr', mac_address,
|
||||
'dev', self.name))
|
||||
|
||||
def show(self):
|
||||
return self._as_root([],
|
||||
('show',
|
||||
'dev', self.name))
|
||||
def show(self, ip_version):
|
||||
options = [ip_version]
|
||||
return self._as_root(options,
|
||||
('show',
|
||||
'dev', self.name))
|
||||
|
||||
|
||||
class IpNetnsCommand(IpCommandBase):
|
||||
|
|
|
@ -1236,7 +1236,8 @@ class TestDvrRouter(L3AgentTestFramework):
|
|||
internal_device = router1.get_internal_device_name(
|
||||
router_info['_interfaces'][0]['id'])
|
||||
neighbors = ip_lib.IPDevice(internal_device, router1.ns_name).neigh
|
||||
self.assertEqual(expected_neighbor, neighbors.show().split()[0])
|
||||
self.assertEqual(expected_neighbor,
|
||||
neighbors.show(ip_version=4).split()[0])
|
||||
|
||||
def _assert_rfp_fpr_mtu(self, router, expected_mtu=1500):
|
||||
dev_mtu = self.get_device_mtu(
|
||||
|
|
|
@ -788,10 +788,10 @@ class TestIpRouteCommand(TestIPCmdBase):
|
|||
return result
|
||||
|
||||
self.parent._run = mock.Mock(side_effect=pullup_side_effect)
|
||||
self.route_cmd.pullup_route('tap1d7888a7-10')
|
||||
self._assert_sudo([], ('del', '10.0.0.0/24', 'dev', 'qr-23380d11-d2'))
|
||||
self._assert_sudo([], ('append', '10.0.0.0/24', 'proto', 'kernel',
|
||||
'src', '10.0.0.1', 'dev', 'qr-23380d11-d2'))
|
||||
self.route_cmd.pullup_route('tap1d7888a7-10', ip_version=4)
|
||||
self._assert_sudo([4], ('del', '10.0.0.0/24', 'dev', 'qr-23380d11-d2'))
|
||||
self._assert_sudo([4], ('append', '10.0.0.0/24', 'proto', 'kernel',
|
||||
'src', '10.0.0.1', 'dev', 'qr-23380d11-d2'))
|
||||
|
||||
def test_pullup_route_first(self):
|
||||
# NOTE(brian-haley) Currently we do not have any IPv6-specific usecase
|
||||
|
@ -806,7 +806,7 @@ class TestIpRouteCommand(TestIPCmdBase):
|
|||
return result
|
||||
|
||||
self.parent._run = mock.Mock(side_effect=pullup_side_effect)
|
||||
self.route_cmd.pullup_route('tap1d7888a7-10')
|
||||
self.route_cmd.pullup_route('tap1d7888a7-10', ip_version=4)
|
||||
# Check two calls - device get and subnet get
|
||||
self.assertEqual(len(self.parent._run.mock_calls), 2)
|
||||
|
||||
|
|
Loading…
Reference in New Issue