Remove _safe_plug_new method from the interface driver
It was added temporary to have compatybility with 3rd party code which uses Neutron interface driver but it was said that since "W" release that old, deprecated way of calling "plug_new" method will be removed. Now we are far after "W" release so it's time to do some cleaning there. Related-Bug: #1879307 Change-Id: I03214079f752c7efe6611f2e928f32652fe681bc
This commit is contained in:
parent
2a359891ce
commit
19b9662837
@ -267,9 +267,8 @@ class LinuxInterfaceDriver(object, metaclass=abc.ABCMeta):
|
||||
bridge=None, namespace=None, prefix=None, mtu=None, link_up=True):
|
||||
if not ip_lib.device_exists(device_name,
|
||||
namespace=namespace):
|
||||
self._safe_plug_new(
|
||||
network_id, port_id, device_name, mac_address, bridge,
|
||||
namespace, prefix, mtu, link_up)
|
||||
self.plug_new(network_id, port_id, device_name, mac_address,
|
||||
bridge, namespace, prefix, mtu, link_up)
|
||||
else:
|
||||
LOG.info("Device %s already exists", device_name)
|
||||
if mtu:
|
||||
@ -278,22 +277,6 @@ class LinuxInterfaceDriver(object, metaclass=abc.ABCMeta):
|
||||
else:
|
||||
LOG.warning("No MTU configured for port %s", port_id)
|
||||
|
||||
def _safe_plug_new(self, network_id, port_id, device_name, mac_address,
|
||||
bridge=None, namespace=None, prefix=None, mtu=None, link_up=True):
|
||||
try:
|
||||
self.plug_new(
|
||||
network_id, port_id, device_name, mac_address, bridge,
|
||||
namespace, prefix, mtu, link_up)
|
||||
except TypeError:
|
||||
LOG.warning("Interface driver's plug_new() method should now "
|
||||
"accept additional optional parameter 'link_up'. "
|
||||
"Usage of plug_new() method which takes from 5 to 9 "
|
||||
"positional arguments is now deprecated and will not "
|
||||
"be possible in W release.")
|
||||
self.plug_new(
|
||||
network_id, port_id, device_name, mac_address, bridge,
|
||||
namespace, prefix, mtu)
|
||||
|
||||
@abc.abstractmethod
|
||||
def unplug(self, device_name, bridge=None, namespace=None, prefix=None):
|
||||
"""Unplug the interface."""
|
||||
|
@ -61,17 +61,6 @@ class FakePort(object):
|
||||
network_id = network.id
|
||||
|
||||
|
||||
class FakeLegacyInterfaceDriver(interface.LinuxInterfaceDriver):
|
||||
|
||||
def plug_new(self, network_id, port_id, device_name, mac_address,
|
||||
bridge=None, namespace=None, prefix=None, mtu=None):
|
||||
"""This is legacy method which don't accepts link_up argument."""
|
||||
pass
|
||||
|
||||
def unplug(self, device_name, bridge=None, namespace=None, prefix=None):
|
||||
pass
|
||||
|
||||
|
||||
class TestBase(base.BaseTestCase):
|
||||
def setUp(self):
|
||||
super(TestBase, self).setUp()
|
||||
@ -685,20 +674,3 @@ class TestBridgeInterfaceDriver(TestBase):
|
||||
|
||||
self.ip_dev.assert_has_calls([mock.call('tap0', namespace=None),
|
||||
mock.call().link.delete()])
|
||||
|
||||
|
||||
class TestLegacyDriver(TestBase):
|
||||
|
||||
def test_plug(self):
|
||||
self.device_exists.return_value = False
|
||||
with mock.patch('neutron.agent.linux.interface.LOG.warning') as log:
|
||||
driver = FakeLegacyInterfaceDriver(self.conf)
|
||||
try:
|
||||
driver.plug(
|
||||
'01234567-1234-1234-99', 'port-1234', 'tap0',
|
||||
'aa:bb:cc:dd:ee:ff')
|
||||
except TypeError:
|
||||
self.fail("LinuxInterfaceDriver class can not call properly "
|
||||
"plug_new method from the legacy drivers that "
|
||||
"do not accept 'link_up' parameter.")
|
||||
log.assert_called_once()
|
||||
|
@ -0,0 +1,9 @@
|
||||
---
|
||||
other:
|
||||
- |
|
||||
Abstract method ``plug_new`` from the
|
||||
neutron.agent.linux.interface.LinuxInterfaceDriver now has additional
|
||||
positional argument ``link_up``. Usage of this method without ``link_up``
|
||||
is now not possible.
|
||||
Third-party drivers which inherit from this base class now have to update
|
||||
the implementation of their ``plug_new`` method.
|
Loading…
Reference in New Issue
Block a user