diff --git a/maap_utils/JobManager.py b/maap_utils/JobManager.py index 536c4d784434ab876c69e98ccd0bc7e4392ecbb9..57860e790dc661e04969bd9f46d5637da1c9d266 100644 --- a/maap_utils/JobManager.py +++ b/maap_utils/JobManager.py @@ -5,6 +5,7 @@ import time from tqdm import tqdm from pathlib import Path import logging +import json from .RunConfig import RunConfig from .Job import Job @@ -233,13 +234,14 @@ class JobManager: successful_jobs = set(self.ledger.get_jobs_in_state("Succeeded")) unsuccessful_jobs = set(self.ledger.get_jobs()) - successful_jobs - # Write ids, final state, and kwargs of unsuccessful jobs to log - logging.info(f"See unsuccessful_jobs.json in {self.output_dir}" - "for details on unsuccessful jobs.") - - for job in unsuccessful_jobs: - logging.debug(f"\nFailed job ID: {job.job_id}") - logging.debug(f" Final state: {job.get_status()}") - logging.debug(f" Job kwargs: {job.kwargs}") + # Write unsuccessful jobs details to JSON in output directory + unsuccessful_jobs_details = [ + {"job_id": job.job_id, "state": job.get_status(), "kwargs": job.kwargs} + for job in unsuccessful_jobs + ] + json_file = self.output_dir / "unsuccessful_jobs.json" + with open(json_file, "w") as f: + json.dump(unsuccessful_jobs_details, f, indent=2) + logging.info(f"Wrote unsuccessful jobs details to {json_file}") return counts