Skip to content

Commit aeac73a

Browse files
Return DELETED status when deleting a nonexistent member
This patch changes the provisioning_status returned to octavia-api for the deletion operation of a member that doesn't exist associated with a pool. Instead of returning ERROR for not having located it, we will return DELETED to sync OVN DB with Octavia DB. This way, the user won't be able to perform unnecessary UPDATE/DELETE operations on this member in the future. Closes-Bug: #2065566 Change-Id: Id355fcb0ad5b66bf646be2e4ccbdacf1b40c1d7c
1 parent f034bab commit aeac73a

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

ovn_octavia_provider/helper.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2185,9 +2185,7 @@ def _remove_member(self, member, ovn_lb, pool_key):
21852185
return pool_status
21862186
else:
21872187
msg = f"Member {member[constants.ID]} not found in the pool"
2188-
raise driver_exceptions.DriverError(
2189-
user_fault_string=msg,
2190-
operator_fault_string=msg)
2188+
LOG.warning(msg)
21912189

21922190
def _members_in_subnet(self, ovn_lb, subnet_id):
21932191
for key, value in ovn_lb.external_ids.items():

ovn_octavia_provider/tests/unit/test_helper.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2212,14 +2212,16 @@ def test_member_delete_not_found_in_pool(self):
22122212
self.assertEqual(status['pools'][0]['provisioning_status'],
22132213
constants.ACTIVE)
22142214
self.assertEqual(status['members'][0]['provisioning_status'],
2215-
constants.ERROR)
2215+
constants.DELETED)
22162216

22172217
@mock.patch.object(ovn_helper.OvnProviderHelper, '_remove_member')
22182218
def test_member_delete_exception(self, mock_remove_member):
22192219
mock_remove_member.side_effect = [RuntimeError]
22202220
status = self.helper.member_delete(self.member)
22212221
self.assertEqual(status['pools'][0]['provisioning_status'],
22222222
constants.ACTIVE)
2223+
self.assertEqual(status['members'][0]['provisioning_status'],
2224+
constants.ERROR)
22232225

22242226
def test_member_delete_disabled_lb(self):
22252227
self.helper._find_ovn_lb_with_pool_key.side_effect = [

0 commit comments

Comments
 (0)