yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #82576
[Bug 1876148] Re: OVNL3RouterPlugin should add_router_interface as in RouterPluginBase
Reviewed: https://review.opendev.org/724930
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=f1cc1bb2813acc5b361bd92823e778a5b6dbea52
Submitter: Zuul
Branch: master
commit f1cc1bb2813acc5b361bd92823e778a5b6dbea52
Author: Flavio Fernandes <flaviof@xxxxxxxxxx>
Date: Fri May 1 16:56:21 2020 -0400
[ovn]: Fix l3_plugin.add_router_interface to comply with RouterPluginBase
OVNL3RouterPlugin inherits from L3_NAT_dbonly_mixin, which inherits
from neutron.extensions.l3.RouterPluginBase
As maintenance task expects OVNL3RouterPlugin to behave as
RouterPluginBase, the add_router_interface should have the signature:
add_router_interface(self, context, router_id, interface_info)
Note: With this change, the default behavior of OVNL3RouterPlugin's
_add_neutron_router_interface becomes idem-potent: multiple calls to add
the same interface will not fail. Because of that, the unit test
test_router_add_interface_dup_port no longer makes sense and is being
removed.
Closes-Bug: #1876148
Change-Id: I8010113b4d8c66ecbccf3126f322a8836d92e7ba
Signed-off-by: Flavio Fernandes <flaviof@xxxxxxxxxx>
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1876148
Title:
OVNL3RouterPlugin should add_router_interface as in RouterPluginBase
Status in neutron:
Fix Released
Bug description:
The class OVNL3RouterPlugin in neutron/services/ovn_l3/plugin.py
implements RouterPluginBase but its implementation of add_router_interface
is using a parameter that is not part of RouterPluginBase.
From neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py
def _create_lrouter_port(self, context, port):
router_id = port['device_id']
self._ovn_client._l3_plugin.add_router_interface(
context, router_id, {'port_id': port['id']}, may_exist=True)
where the param may_exist does not exist. That caused the failure
below.
By complying with RouterPluginBase's abstract methods, issues like
this would have been discovered sooner.
```
Apr 30 08:52:00 dstackvm neutron-server[1508]: ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/opt/stack/neutron/neutron/plugins/ml2/driver\
s/ovn/mech_driver/ovsdb/maintenance.py", line 401, in _create_lrouter_port
Apr 30 08:52:00 dstackvm neutron-server[1508]: ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance context, router_id, {'port_id': port['id']}, may_\
exist=True)
Apr 30 08:52:00 dstackvm neutron-server[1508]: ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance TypeError: add_router_interface() got an unexpected k\
eyword argument 'may_exist'
```
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1876148/+subscriptions
References