diff --git a/neutron/privileged/agent/linux/ip_lib.py b/neutron/privileged/agent/linux/ip_lib.py index c70e2a64e47..a0e8de4de3e 100644 --- a/neutron/privileged/agent/linux/ip_lib.py +++ b/neutron/privileged/agent/linux/ip_lib.py @@ -17,13 +17,13 @@ import socket import netaddr from neutron_lib import constants from oslo_log import log as logging +import pyroute2 from pyroute2 import iproute from pyroute2.netlink import exceptions as netlink_exceptions from pyroute2.netlink import rtnl from pyroute2.netlink.rtnl import ifinfmsg from pyroute2.netlink.rtnl import ndmsg from pyroute2 import netns -from pyroute2.nslink import nslink import tenacity from neutron._i18n import _ @@ -146,14 +146,14 @@ def get_iproute(namespace): # `NetNS` -- RTNL API to another network namespace if namespace: # do not try and create the namespace - return nslink.NetNS(namespace, flags=0, libc=priv_linux.get_cdll()) + return pyroute2.NetNS(namespace, flags=0, libc=priv_linux.get_cdll()) return iproute.IPRoute() @privileged.default.entrypoint def open_namespace(namespace): """Open namespace to test if the namespace is ready to be manipulated""" - with nslink.NetNS(namespace, flags=0): + with pyroute2.NetNS(namespace, flags=0): pass diff --git a/neutron/tests/functional/privileged/agent/linux/test_ip_lib.py b/neutron/tests/functional/privileged/agent/linux/test_ip_lib.py index ae247c2e06f..6a130964f91 100644 --- a/neutron/tests/functional/privileged/agent/linux/test_ip_lib.py +++ b/neutron/tests/functional/privileged/agent/linux/test_ip_lib.py @@ -20,7 +20,6 @@ from unittest import mock import netaddr from neutron_lib import constants as n_cons from oslo_utils import uuidutils -from pyroute2.ipdb import routes as ipdb_routes from pyroute2.iproute import linux as iproute_linux from pyroute2.netlink import exceptions as netlink_exc from pyroute2.netlink import rtnl @@ -551,7 +550,7 @@ class RouteTestCase(functional_base.BaseSudoTestCase): for cidr in cidrs: ip_version = common_utils.get_ip_version(cidr) if ip_version == n_cons.IP_VERSION_6 and not metric: - metric = ipdb_routes.IP6_RT_PRIO_USER + metric = rtnl.rtmsg.IP6_RT_PRIO_USER if ip_version == n_cons.IP_VERSION_6: scope = 0 routes = priv_ip_lib.list_ip_routes(self.namespace, ip_version) @@ -578,7 +577,7 @@ class RouteTestCase(functional_base.BaseSudoTestCase): table = table or iproute_linux.DEFAULT_TABLE ip_version = common_utils.get_ip_version(gateway) if ip_version == n_cons.IP_VERSION_6 and not metric: - metric = ipdb_routes.IP6_RT_PRIO_USER + metric = rtnl.rtmsg.IP6_RT_PRIO_USER scope = 0 routes = priv_ip_lib.list_ip_routes(self.namespace, ip_version) for route in routes: diff --git a/neutron/tests/unit/agent/linux/test_ip_lib.py b/neutron/tests/unit/agent/linux/test_ip_lib.py index 8961ba3fddf..6078d9a2490 100644 --- a/neutron/tests/unit/agent/linux/test_ip_lib.py +++ b/neutron/tests/unit/agent/linux/test_ip_lib.py @@ -23,11 +23,11 @@ from neutron_lib import constants from neutron_lib import exceptions from oslo_utils import netutils from oslo_utils import uuidutils +import pyroute2 from pyroute2.netlink import exceptions as netlink_exceptions from pyroute2.netlink.rtnl import ifinfmsg from pyroute2.netlink.rtnl import ndmsg from pyroute2 import netns -from pyroute2.nslink import nslink import testtools from neutron.agent.common import utils # noqa @@ -37,6 +37,7 @@ from neutron import privileged from neutron.privileged.agent.linux import ip_lib as priv_lib from neutron.tests import base + NETNS_SAMPLE = [ '12345678-1234-5678-abcd-1234567890ab', 'bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb', @@ -1003,7 +1004,7 @@ class TestIpNeighCommand(TestIPCmdBase): self.addCleanup(privileged.default.set_client_mode, True) privileged.default.set_client_mode(False) - @mock.patch.object(nslink, 'NetNS') + @mock.patch.object(pyroute2, 'NetNS') def test_add_entry(self, mock_netns): mock_netns_instance = mock_netns.return_value mock_netns_enter = mock_netns_instance.__enter__.return_value @@ -1018,20 +1019,20 @@ class TestIpNeighCommand(TestIPCmdBase): ifindex=1, state=ndmsg.states['permanent']) - @mock.patch.object(nslink, 'NetNS') + @mock.patch.object(pyroute2, 'NetNS') def test_add_entry_nonexistent_namespace(self, mock_netns): mock_netns.side_effect = OSError(errno.ENOENT, None) with testtools.ExpectedException(ip_lib.NetworkNamespaceNotFound): self.neigh_cmd.add('192.168.45.100', 'cc:dd:ee:ff:ab:cd') - @mock.patch.object(nslink, 'NetNS') + @mock.patch.object(pyroute2, 'NetNS') def test_add_entry_other_error(self, mock_netns): expected_exception = OSError(errno.EACCES, None) mock_netns.side_effect = expected_exception with testtools.ExpectedException(expected_exception.__class__): self.neigh_cmd.add('192.168.45.100', 'cc:dd:ee:ff:ab:cd') - @mock.patch.object(nslink, 'NetNS') + @mock.patch.object(pyroute2, 'NetNS') def test_delete_entry(self, mock_netns): mock_netns_instance = mock_netns.return_value mock_netns_enter = mock_netns_instance.__enter__.return_value @@ -1052,7 +1053,7 @@ class TestIpNeighCommand(TestIPCmdBase): errno.ENOENT, None) self.neigh_cmd.delete('192.168.45.100', 'cc:dd:ee:ff:ab:cd') - @mock.patch.object(nslink, 'NetNS') + @mock.patch.object(pyroute2, 'NetNS') def test_dump_entries(self, mock_netns): mock_netns_instance = mock_netns.return_value mock_netns_enter = mock_netns_instance.__enter__.return_value diff --git a/neutron/tests/unit/privileged/agent/linux/test_ip_lib.py b/neutron/tests/unit/privileged/agent/linux/test_ip_lib.py index cbcae7aa3cc..1107c231925 100644 --- a/neutron/tests/unit/privileged/agent/linux/test_ip_lib.py +++ b/neutron/tests/unit/privileged/agent/linux/test_ip_lib.py @@ -15,10 +15,10 @@ import errno from unittest import mock +import pyroute2 from pyroute2 import iproute from pyroute2 import netlink from pyroute2.netlink import exceptions as netlink_exceptions -from pyroute2.nslink import nslink from neutron.privileged.agent.linux import ip_lib as priv_lib from neutron.tests import base @@ -28,7 +28,7 @@ class IpLibTestCase(base.BaseTestCase): def _test_run_iproute_link(self, namespace=None): ip_obj = "NetNS" if namespace else "IPRoute" - _mod = nslink if namespace else iproute + _mod = pyroute2 if namespace else iproute with mock.patch.object(_mod, ip_obj) as ip_mock_cls: ip_mock = ip_mock_cls() ip_mock.__enter__().link_lookup.return_value = [2] @@ -112,7 +112,7 @@ class IpLibTestCase(base.BaseTestCase): def _test_run_iproute_neigh(self, namespace=None): ip_obj = "NetNS" if namespace else "IPRoute" - _mod = nslink if namespace else iproute + _mod = pyroute2 if namespace else iproute with mock.patch.object(_mod, ip_obj) as ip_mock_cls: ip_mock = ip_mock_cls() ip_mock.__enter__().link_lookup.return_value = [2] @@ -183,7 +183,7 @@ class IpLibTestCase(base.BaseTestCase): def _test_run_iproute_addr(self, namespace=None): ip_obj = "NetNS" if namespace else "IPRoute" - _mod = nslink if namespace else iproute + _mod = pyroute2 if namespace else iproute with mock.patch.object(_mod, ip_obj) as ip_mock_cls: ip_mock = ip_mock_cls() ip_mock.__enter__().link_lookup.return_value = [2]