Done
Details
Details
Priority
Assignee
Aniss Chohra
Aniss ChohraReporter
Sylvain Boily
Sylvain BoilyApprovers
Aniss Chohra
Fix versions
Sprint
None
Labels
Zendesk Support
Zendesk Support
Created March 14, 2019 at 5:39 PM
Updated December 6, 2021 at 6:22 PM
Resolved November 25, 2021 at 6:44 PM
If you have a tenant with a child when you delete it you have an 500 error instead an error with a comprehensible error.
2019-03-14 13:33:21,076 [16278] (DEBUG) (wazo_auth.plugins.http.tenants.http): deleting tenant 21d27b9c-3efa-4fd2-8ff7-b95cd9de51d8 from 21d27b9c-3efa-4fd2-8ff7-b95cd9de51d8
2019-03-14 13:33:21,181 [16278] (ERROR) (flask.app): Exception on /0.1/tenants/21d27b9c-3efa-4fd2-8ff7-b95cd9de51d8 [DELETE]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
context)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 450, in do_execute
cursor.execute(statement, parameters)
psycopg2.IntegrityError: update or delete on table "auth_tenant" violates foreign key constraint "auth_tenant_parent_uuid_fkey" on table "auth_tenant"
DETAIL: Key (uuid)=(21d27b9c-3efa-4fd2-8ff7-b95cd9de51d8) is still referenced from table "auth_tenant".
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3/dist-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/lib/python3/dist-packages/flask_restful/_init_.py", line 477, in wrapper
resp = resource(*args, **kwargs)
File "/usr/lib/python3/dist-packages/flask/views.py", line 88, in view
return self.dispatch_request(*args, **kwargs)
File "/usr/lib/python3/dist-packages/flask_restful/_init_.py", line 587, in dispatch_request
resp = meth(*args, **kwargs)
File "/usr/lib/python3/dist-packages/xivo/rest_api_helpers.py", line 29, in wrapper
return func(*args, **kwargs)
File "/usr/lib/python3.5/dist-packages/wazo_auth/http.py", line 78, in wrapper
return func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/xivo/auth_verifier.py", line 109, in wrapper
return func(*args, **kwargs)
File "/usr/lib/python3.5/dist-packages/wazo_auth/plugins/http/tenants/http.py", line 27, in delete
self.tenant_service.delete(scoping_tenant.uuid, tenant_uuid)
File "/usr/lib/python3.5/dist-packages/wazo_auth/services/tenant.py", line 40, in delete
result = self._dao.tenant.delete(uuid)
File "/usr/lib/python3.5/dist-packages/wazo_auth/database/queries/tenant.py", line 107, in delete
nb_deleted = s.query(Tenant).filter(Tenant.uuid == str(uuid)).delete()
File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 3073, in delete
delete_op.exec_()
File "/usr/lib/python3/dist-packages/sqlalchemy/orm/persistence.py", line 1127, in exec_
self._do_exec()
File "/usr/lib/python3/dist-packages/sqlalchemy/orm/persistence.py", line 1311, in _do_exec
mapper=self.mapper)
File "/usr/lib/python3/dist-packages/sqlalchemy/orm/session.py", line 1034, in execute
bind, close_with_result=True).execute(clause, params or {})
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 914, in execute
return meth(self, multiparams, params)
File "/usr/lib/python3/dist-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
context)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
exc_info
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 202, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 185, in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
context)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 450, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) update or delete on table "auth_tenant" violates foreign key constraint "auth_tenant_parent_uuid_fkey" on table "auth_tenant"
DETAIL: Key (uuid)=(21d27b9c-3efa-4fd2-8ff7-b95cd9de51d8) is still referenced from table "auth_tenant".
[SQL: 'DELETE FROM auth_tenant WHERE auth_tenant.uuid = %(uuid_1)s'] [parameters: {'uuid_1': '21d27b9c-3efa-4fd2-8ff7-b95cd9de51d8'}]