diff options
Diffstat (limited to 'uploader/jobs.py')
-rw-r--r-- | uploader/jobs.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/uploader/jobs.py b/uploader/jobs.py index 4a3fc80..ff6a3c7 100644 --- a/uploader/jobs.py +++ b/uploader/jobs.py @@ -1,6 +1,8 @@ """Handle jobs""" import os import sys +import uuid +import json import shlex import subprocess from uuid import UUID, uuid4 @@ -128,3 +130,11 @@ def update_stdout_stderr(rconn: Redis, contents = thejob.get(stream, '') new_contents = contents + bytes_read.decode("utf-8") rconn.hset(name=job_key(rprefix, jobid), key=stream, value=new_contents) + + +def job_errors(rconn: Redis, prefix: str, job_id: Union[str, uuid.UUID]) -> tuple[dict, ...]: + """Fetch job errors""" + return tuple( + json.loads(error) + for key in rconn.keys(f"{prefix}:{str(job_id)}:*:errors:*") + for error in rconn.lrange(key, 0, -1)) |