diff --git a/octavia/api/v2/controllers/listener.py b/octavia/api/v2/controllers/listener.py index d0216a707b..0bca3b2c6e 100644 --- a/octavia/api/v2/controllers/listener.py +++ b/octavia/api/v2/controllers/listener.py @@ -333,16 +333,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 as e: + raise exceptions.DuplicateListenerEntry( + protocol=listener_dict.get('protocol'), + port=listener_dict.get('protocol_port')) from e except odb_exceptions.DBError as e: raise exceptions.InvalidOption(value=listener_dict.get('protocol'), option='protocol') from e diff --git a/octavia/api/v2/controllers/member.py b/octavia/api/v2/controllers/member.py index f0c2e2ba9e..b57ea3e547 100644 --- a/octavia/api/v2/controllers/member.py +++ b/octavia/api/v2/controllers/member.py @@ -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 as e: + raise exceptions.DuplicateMemberEntry( + ip_address=member_dict.get('ip_address'), + port=member_dict.get('protocol_port')) from e except odb_exceptions.DBError as e: # TODO(blogan): will have to do separate validation protocol # before creation or update since the exception messages