From d052e39af7132c7167ac7fa43ee617de4b6f1094 Mon Sep 17 00:00:00 2001 From: Fernando Royo Date: Wed, 13 Jul 2022 16:39:41 +0200 Subject: [PATCH] Fix IPv6 member delete on batch operation When IPv6 is used on the LB+Member and a batch operation is done over the members (including a delete of one of them), the member affected remains in ERROR state. This patch fix the way of extract the info from the member to create the request to the helper correctly. Closes-Bug: #1981594 Change-Id: I5a3e836deff810af5b9ad071c7b16f6bd5fdcdcc (cherry picked from commit 6711a3e32dd1b5e5d8bbcc401a57ec229b690546) --- ovn_octavia_provider/driver.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ovn_octavia_provider/driver.py b/ovn_octavia_provider/driver.py index 7d46c64c..d40b595e 100644 --- a/ovn_octavia_provider/driver.py +++ b/ovn_octavia_provider/driver.py @@ -384,12 +384,14 @@ class OvnProviderDriver(driver_base.ProviderDriver): for member in members_to_delete: member_info = member.split('_') + member_ip, member_port, subnet_id = ( + self._ovn_helper._extract_member_info(member)[0]) request_info = {'id': member_info[1], - 'address': member_info[2].split(':')[0], - 'protocol_port': member_info[2].split(':')[1], + 'address': member_ip, + 'protocol_port': member_port, 'pool_id': pool_id} if len(member_info) == 4: - request_info['subnet_id'] = member_info[3] + request_info['subnet_id'] = subnet_id request = {'type': ovn_const.REQ_TYPE_MEMBER_DELETE, 'info': request_info} request_list.append(request)