From 4e3e18b5793340b8750bfcdb3daf7d7662962a71 Mon Sep 17 00:00:00 2001 From: Johan Schreurs Date: Fri, 14 Apr 2023 09:33:47 +0200 Subject: [PATCH] Issue #106 update dependency and fix errors with get log entries PR #107 --- CHANGELOG.md | 2 ++ setup.py | 2 +- src/openeo_aggregator/backend.py | 10 ++++++++-- .../partitionedjobs/tracking.py | 18 ++++++++++++++---- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94a86a52..481855b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ The format is roughly based on [Keep a Changelog](https://keepachangelog.com/en/ ### Changed +- Support log level for retrieving BatchJob logs + ([#106](https://github.com/Open-EO/openeo-aggregator/issues/106)) ### Fixed diff --git a/setup.py b/setup.py index ca0de110..79765c3a 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ "requests", "attrs", "openeo>=0.16.0.a5.dev", - "openeo_driver>=0.38.1.dev", + "openeo_driver>=0.40.0a1.dev", "flask~=2.0", "gunicorn~=20.0", "python-json-logger>=2.0.0", diff --git a/src/openeo_aggregator/backend.py b/src/openeo_aggregator/backend.py index ce9b8fad..89059f2f 100644 --- a/src/openeo_aggregator/backend.py +++ b/src/openeo_aggregator/backend.py @@ -803,11 +803,17 @@ def get_result_metadata(self, job_id: str, user_id: str) -> BatchJobResultMetada links=links, ) - def get_log_entries(self, job_id: str, user_id: str, offset: Optional[str] = None) -> List[dict]: + def get_log_entries( + self, + job_id: str, + user_id: str, + offset: Optional[str] = None, + level: Optional[str] = None, + ) -> Iterable[dict]: con, backend_job_id = self._get_connection_and_backend_job_id(aggregator_job_id=job_id) with con.authenticated_from_request(request=flask.request, user=User(user_id)), \ self._translate_job_errors(job_id=job_id): - return con.job(backend_job_id).logs(offset=offset) + return con.job(backend_job_id).logs(offset=offset, level=level) class ServiceIdMapping: diff --git a/src/openeo_aggregator/partitionedjobs/tracking.py b/src/openeo_aggregator/partitionedjobs/tracking.py index 259d1803..522c6ba4 100644 --- a/src/openeo_aggregator/partitionedjobs/tracking.py +++ b/src/openeo_aggregator/partitionedjobs/tracking.py @@ -316,7 +316,12 @@ def get_assets(self, user_id: str, pjob_id: str, flask_request: flask.Request) - return assets def get_logs( - self, user_id: str, pjob_id: str, flask_request: flask.Request, offset: Optional[int] = None + self, + user_id: str, + pjob_id: str, + flask_request: flask.Request, + offset: Optional[str] = None, + level: Optional[str] = None, ) -> List[LogEntry]: sjobs = self._db.list_subjobs(user_id=user_id, pjob_id=pjob_id) all_logs = [] @@ -326,7 +331,7 @@ def get_logs( job_id = self._db.get_backend_job_id(user_id=user_id, pjob_id=pjob_id, sjob_id=sjob_id) con = self._backends.get_connection(sjob_metadata["backend_id"]) with con.authenticated_from_request(request=flask_request): - logs = con.job(job_id).logs(offset=offset) + logs = con.job(job_id).logs(offset=offset, level=level) for log in logs: log["id"] = f"{sjob_id}-{log.id}" all_logs.extend(logs) @@ -391,13 +396,18 @@ def get_metadata(self) -> dict: """Interface `openeo.rest.JobResult.get_metadata`""" return {} - def logs(self, offset=None) -> List[LogEntry]: + def logs( + self, + offset: Optional[str] = None, + level: Optional[str] = None, + ) -> List[LogEntry]: """Interface `RESTJob.logs`""" return self.connection.partitioned_job_tracker.get_logs( user_id=self.connection._user.user_id, pjob_id=self.pjob_id, flask_request=self.connection._flask_request, - offset=offset + offset=offset, + level=level, ) def __init__(self, partitioned_job_tracker: PartitionedJobTracker):