@@ -196,7 +196,7 @@ def describe_tables(db: 'Datalayer' = DatalayerDependency()):
196196 return db .databackend .list_tables_or_collections ()
197197
198198 @app .add ('/db/apply' , method = 'post' )
199- async def db_apply (
199+ def db_apply (
200200 info : t .Dict ,
201201 background_tasks : BackgroundTasks ,
202202 id : str | None = 'test' ,
@@ -205,8 +205,7 @@ async def db_apply(
205205 cls_path = info ['_builds' ][info ['_base' ][1 :]]['_path' ]
206206 cls = import_object (cls_path )
207207 type_id = cls .type_id
208- async with lock :
209- PENDING_COMPONENTS .add ((type_id , info ['identifier' ]))
208+ PENDING_COMPONENTS .add ((type_id , info ['identifier' ]))
210209 if '_variables' in info :
211210 info ['_variables' ]['output_prefix' ] = CFG .output_prefix
212211 info ['_variables' ]['databackend' ] = db .databackend .backend_name
@@ -275,13 +274,16 @@ def db_show(
275274 )
276275 return out
277276
277+ def _process_db_remove (db , type_id , identifier ):
278+ return db .remove (type_id = type_id , identifier = identifier , recursive = True , force = True )
279+
278280 @app .add ('/db/remove' , method = 'post' )
279- async def db_remove (
280- type_id : str , identifier : str , db : 'Datalayer' = DatalayerDependency ()
281+ def db_remove (
282+ type_id : str , identifier : str , bg : BackgroundTasks , db : 'Datalayer' = DatalayerDependency (),
281283 ):
282- async with lock :
283- PENDING_COMPONENTS .discard ((type_id , identifier ))
284+ PENDING_COMPONENTS .discard ((type_id , identifier ))
284285 db .remove (type_id = type_id , identifier = identifier , recursive = True , force = True )
286+ bg .add_task (_process_db_remove , db , type_id , identifier )
285287 return {'status' : 'ok' }
286288
287289 @app .add ('/db/show_template' , method = 'get' )
0 commit comments