]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Add IP version support to all ip_lib code
authorBrian Haley <brian.haley@hp.com>
Tue, 14 Apr 2015 21:37:55 +0000 (17:37 -0400)
committerBrian Haley <brian.haley@hp.com>
Mon, 4 May 2015 15:00:10 +0000 (11:00 -0400)
Added an ip_version argument to IpNeighCommand.show() and
IpRouteCommand.pullup_route() to match other code in the file.

Change-Id: Ifdf2abc5a77f551223bad061a1abdc88695fa5f1

neutron/agent/linux/dhcp.py
neutron/agent/linux/ip_lib.py
neutron/tests/functional/agent/test_l3_agent.py
neutron/tests/unit/agent/linux/test_ip_lib.py

index f594b775c0f74b6170b3c098abef42254b041374..b9af4e337af8ca3f6c3d902281ddb3450d4a9379 100644 (file)
@@ -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)
index baf61b90e1bad8b9276caca5a277e0bc742282cd..943fd543cb3523d7a97a49514743a25476f556fa 100644 (file)
@@ -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):
index 7b39722e9144136d0e6bfbf593cf39b259ae1953..2c9907471296f08bbff2efb330914b237d940537 100644 (file)
@@ -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(
index 80202ac8330eef0f1d9cd7e7781890692e7eefa4..54d703e6eac2681756835e375e04bab639f996ce 100644 (file)
@@ -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)