Reviewed: https://review.opendev.org/c/openstack/ovn-octavia-provider/+/895826 Committed: https://opendev.org/openstack/ovn-octavia-provider/commit/983ee0c4f31413904b2f1c2b3a655a32cba70401 Submitter: "Zuul (22348)" Branch: master
commit 983ee0c4f31413904b2f1c2b3a655a32cba70401 Author: Fernando Royo <[email protected]> Date: Tue Sep 19 17:56:23 2023 +0200 Check multiple address of a LRP plugged to LS When LB or member is created, driver looks for the Logical Router which is plugged to the Logical Switch. As there can be more than one address on the port, we should iterate over them to be compared with the gateway IP. This patch modifies code to do not crash if more than one address is found in neutron:cidrs external_ids field. Closes-Bug: 2036620 Change-Id: I17b2c2577a4d99455c30ca1e10632a7004d7c084 ** 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/2036620 Title: [ovn-octavia-provider] Fix issue when LRP has more than one address Status in neutron: Fix Released Bug description: When a LB is created or a new backend member is attached the OVN provider will search for the LRP attached to the LS where the LB is created, in order to associate this new LB to the LR. An exception is triggered if the LRP has more than one address, because current code can't find the port. e.g a LRP with this neutron:cidrs in external_id field '10.10.10.1/24 fd8b:8a01:ab1d:0:f816:3eff:fe3d:24ab/64' will trigger this exception: During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/froyo/Documentos/gitprojects/ovn-octavia-provider/.tox/py/lib/python3.10/site-packages/neutron/tests/base.py", line 178, in func return f(self, *args, **kwargs) File "/home/froyo/Documentos/gitprojects/ovn-octavia-provider/ovn_octavia_provider/tests/unit/test_helper.py", line 2629, in test__find_lr_of_ls_multiple_address returned_lr = self.helper._find_lr_of_ls(ls, '10.10.10.1') File "/home/froyo/Documentos/gitprojects/ovn-octavia-provider/ovn_octavia_provider/helper.py", line 804, in _find_lr_of_ls port_cidr = netaddr.IPNetwork( File "/home/froyo/Documentos/gitprojects/ovn-octavia-provider/.tox/py/lib/python3.10/site-packages/netaddr/ip/__init__.py", line 942, in __init__ value, prefixlen = parse_ip_network(module, addr, File "/home/froyo/Documentos/gitprojects/ovn-octavia-provider/.tox/py/lib/python3.10/site-packages/netaddr/ip/__init__.py", line 818, in parse_ip_network mask = IPAddress(val2, module.version, flags=INET_PTON) File "/home/froyo/Documentos/gitprojects/ovn-octavia-provider/.tox/py/lib/python3.10/site-packages/netaddr/ip/__init__.py", line 278, in __init__ raise ValueError('%s() does not support netmasks or subnet' \ ValueError: IPAddress() does not support netmasks or subnet prefixes! See documentation for details. To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/2036620/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

