Merge "Fix duplicate object error messages" into stable/train

This commit is contained in:
Zuul 2022-07-12 10:24:21 +00:00 committed by Gerrit Code Review
commit f18a230e93
2 changed files with 8 additions and 20 deletions

View File

@ -296,16 +296,10 @@ class ListenersController(base.BaseController):
lock_session, id=db_listener.id)
return db_listener
except odb_exceptions.DBDuplicateEntry as de:
column_list = ['load_balancer_id', 'protocol', 'protocol_port']
constraint_list = ['uq_listener_load_balancer_id_protocol_port']
if ['id'] == de.columns:
raise exceptions.IDAlreadyExists()
if (set(column_list) == set(de.columns) or
set(constraint_list) == set(de.columns)):
raise exceptions.DuplicateListenerEntry(
protocol=listener_dict.get('protocol'),
port=listener_dict.get('protocol_port'))
except odb_exceptions.DBDuplicateEntry:
raise exceptions.DuplicateListenerEntry(
protocol=listener_dict.get('protocol'),
port=listener_dict.get('protocol_port'))
except odb_exceptions.DBError:
raise exceptions.InvalidOption(value=listener_dict.get('protocol'),
option='protocol')

View File

@ -119,16 +119,10 @@ class MemberController(base.BaseController):
"""Validate creating member on pool."""
try:
return self.repositories.member.create(lock_session, **member_dict)
except odb_exceptions.DBDuplicateEntry as de:
column_list = ['pool_id', 'ip_address', 'protocol_port']
constraint_list = ['uq_member_pool_id_address_protocol_port']
if ['id'] == de.columns:
raise exceptions.IDAlreadyExists()
if (set(column_list) == set(de.columns) or
set(constraint_list) == set(de.columns)):
raise exceptions.DuplicateMemberEntry(
ip_address=member_dict.get('ip_address'),
port=member_dict.get('protocol_port'))
except odb_exceptions.DBDuplicateEntry:
raise exceptions.DuplicateMemberEntry(
ip_address=member_dict.get('ip_address'),
port=member_dict.get('protocol_port'))
except odb_exceptions.DBError:
# TODO(blogan): will have to do separate validation protocol
# before creation or update since the exception messages