Skip to content
Snippets Groups Projects
Commit 43c8f5bf authored by Tim Repke's avatar Tim Repke
Browse files

resolving job submission bugs (round 1)

parent 36d412fa
No related branches found
No related tags found
1 merge request!4Pipe import academic
Pipeline #910 failed
fastapi==0.85.1
fastapi==0.88.0
hypercorn==0.14.3
toml==0.10.2
email-validator==1.3.0
......
......@@ -3,7 +3,8 @@ from fastapi import APIRouter, Depends
from nacsos_data.models.imports import ImportModel, ImportType
from nacsos_data.db.crud.imports import \
read_all_imports_for_project, \
read_import, upsert_import, \
read_import, \
upsert_import, \
read_item_count_for_import
from nacsos_data.util.pipelines.imports import submit_jsonl_import_task, submit_wos_import_task
......@@ -60,13 +61,13 @@ async def trigger_import(import_id: str,
if import_details is not None and str(import_details.project_id) == str(permissions.permissions.project_id):
if import_details.type == ImportType.jsonl:
await submit_jsonl_import_task(import_id=import_id,
base_url=settings.PIPES.API_URL,
engine=db_engine)
return await submit_jsonl_import_task(import_id=import_id,
base_url=settings.PIPES.API_URL,
engine=db_engine)
elif import_details.type == ImportType.wos:
await submit_wos_import_task(import_id=import_id,
base_url=settings.PIPES.API_URL,
engine=db_engine)
return await submit_wos_import_task(import_id=import_id,
base_url=settings.PIPES.API_URL,
engine=db_engine)
else:
raise NotImplementedError(f'No import trigger for "{import_details.type}" implemented yet.')
else:
......
......@@ -56,15 +56,25 @@ class ErrorHandlingMiddleware(BaseHTTPMiddleware):
response = await call_next(request)
return response
except (Exception, Warning) as ew:
logger.exception(ew)
error_str = 'Unknown error (very serious stuff...)'
try:
# FIXME: The Pydantic Validation Error triggers an exception when logging the error.
error_str = str(ew)
logger.exception(ew)
except Error:
logger.error('Some unspecified error occurred...')
return await http_exception_handler(
request,
exc=HTTPException(
status_code=self._resolve_status(ew),
detail=ErrorDetail(level='WARNING' if isinstance(ew, Warning) else 'ERROR',
type=ew.__class__.__name__,
message=str(ew),
args=self._resolve_args(ew)).dict()
detail=ErrorDetail(
level='WARNING' if isinstance(ew, Warning) else 'ERROR',
type=ew.__class__.__name__,
message=error_str,
args=self._resolve_args(ew)
).dict()
))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment