Fix batch update members

When batch update members request only contains existing members
update, octavia-api raises exception because 'pool_id' is missing.

This patch should backport to stable branches.

Change-Id: I43a9af83a6615d3bffb7ec9c69f8d0b66c03fc97
Story: 2003608
Task: 24940
This commit is contained in:
Lingxian Kong 2018-09-09 00:19:16 +12:00
parent c7395e0488
commit dbad641cde
2 changed files with 4 additions and 1 deletions

View File

@ -364,6 +364,8 @@ class MembersController(MemberController):
db_member_dict.pop('id')
self.repositories.member.update(
lock_session, m.id, **db_member_dict)
m.pool_id = self.pool_id
provider_members.append(
driver_utils.db_member_to_provider_member(m))
# Delete old members

View File

@ -506,12 +506,12 @@ class TestMember(base.BaseAPITest):
provider_dict = driver_utils.member_dict_to_provider_dict(rm)
# Adjust for API response
provider_dict['pool_id'] = self.pool_id
if rm['provisioning_status'] == 'PENDING_UPDATE':
del provider_dict['name']
del provider_dict['subnet_id']
provider_updates.append(driver_dm.Member(**provider_dict))
elif rm['provisioning_status'] == 'PENDING_CREATE':
provider_dict['pool_id'] = self.pool_id
provider_dict['name'] = None
provider_creates.append(driver_dm.Member(**provider_dict))
# Order matters here
@ -623,6 +623,7 @@ class TestMember(base.BaseAPITest):
provider_dict = driver_utils.member_dict_to_provider_dict(rm)
# Adjust for API response
provider_dict['pool_id'] = self.pool_id
del provider_dict['name']
del provider_dict['subnet_id']
provider_members.append(driver_dm.Member(**provider_dict))