UST-QuAntiL / qhana-plugin-registry

A plugin registry for QHAna plugins
https://qhana-plugin-registry.readthedocs.io/en/latest
Apache License 2.0
0 stars 0 forks source link

Delete seed not working #6

Closed krebsni closed 1 year ago

krebsni commented 1 year ago

Test issued from UI. The following error is raised:

`2022-12-16 16:29:54,531 [ ERROR ] [app ] Exception on /api/seeds/1/ [DELETE] <log_exception, 1741; /home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask/app.py> Traceback (most recent call last): File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context self.dialect.do_execute( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) sqlite3.IntegrityError: FOREIGN KEY constraint failed

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask/app.py", line 2525, in wsgi_app response = self.full_dispatch_request() File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask/app.py", line 1822, in full_dispatch_request rv = self.handle_user_exception(e) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask_cors/extension.py", line 165, in wrapped_function return cors_after_request(app.make_response(f(args, kwargs))) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask/app.py", line 1820, in full_dispatch_request rv = self.dispatch_request() File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask/app.py", line 1796, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(view_args) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask/views.py", line 107, in view return current_app.ensure_sync(self.dispatch_request)(kwargs) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask/views.py", line 188, in dispatch_request return current_app.ensure_sync(meth)(kwargs) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/flask_smorest/response.py", line 90, in wrapper func(args, **kwargs) File "/home/###/qhana/qhana-plugin-registry/qhana_plugin_registry/api/seeds/seed.py", line 57, in delete DB.session.commit() File "", line 2, in commit File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1451, in commit self._transaction.commit(_to_root=self.future) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 829, in commit self._prepare_impl() File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl self.session.flush() File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3444, in flush self._flush(objects) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3583, in _flush with util.safereraise(): File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in exit compat.raise( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3544, in _flush flush_context.execute() File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute rec.execute(self) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/unitofwork.py", line 667, in execute util.preloaded.orm_persistence.delete_obj( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 343, in delete_obj _emit_delete_statements( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 1468, in _emit_delete_statements c = connection._execute_20( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1705, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection return connection._execute_clauseelement( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement ret = self._execute_context( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context self._handle_dbapi_exception( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapiexception util.raise( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context self.dialect.do_execute( File "/home/###/.cache/pypoetry/virtualenvs/qhana-plugin-registry-dqdKsC88-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) FOREIGN KEY constraint failed [SQL: DELETE FROM "Seed" WHERE "Seed".id = ?] [parameters: (1,)] (Background on this error at: https://sqlalche.me/e/14/gkpj)`

buehlefs commented 1 year ago

That is currently expected behaviour as the seed url is used by the plugins discovered from this seed. We need to decide wether these plugins should be unlinked from the seed or removed entirely with the seed. Until then seeds can only be removed if they are not associated with any plugin.