From 25e2ea0269a58229e754182cf2d85a742eae3d03 Mon Sep 17 00:00:00 2001 From: Lin Guo Date: Fri, 24 Jan 2025 10:16:56 -0800 Subject: [PATCH] Issue a warning when `get_status` failed to resolve --- lib/ramble/ramble/workflow_manager.py | 4 +++- .../builtin/workflow_managers/slurm/workflow_manager.py | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/ramble/ramble/workflow_manager.py b/lib/ramble/ramble/workflow_manager.py index 7942bdb98..1ad4f2d81 100644 --- a/lib/ramble/ramble/workflow_manager.py +++ b/lib/ramble/ramble/workflow_manager.py @@ -47,7 +47,9 @@ def set_application(self, app_inst): def get_status(self, workspace): """Return status of a given job""" - return None + raise NotImplementedError( + f"The workflow manager {self.name} does not support `get_status`" + ) def conditional_expand(self, templates): """Return a (potentially empty) list of expanded strings diff --git a/var/ramble/repos/builtin/workflow_managers/slurm/workflow_manager.py b/var/ramble/repos/builtin/workflow_managers/slurm/workflow_manager.py index 0350436a2..c0af62b4f 100644 --- a/var/ramble/repos/builtin/workflow_managers/slurm/workflow_manager.py +++ b/var/ramble/repos/builtin/workflow_managers/slurm/workflow_manager.py @@ -87,7 +87,7 @@ def __init__(self, file_path): name="slurm_execute_template_path", default="slurm_experiment_sbatch.tpl", description="Path to the custom template for generating the slurm sbatch job script. " - "If a relative path is given, it is searched under the workflow manager's source directory. " + "For a relative path, it is searched under the workflow manager's source directory. " "The path can contain workspace path variables such as $workspace_config.", ) @@ -190,6 +190,11 @@ def get_status(self, workspace): wm_status = _STATUS_MAP.get(wm_status_raw) if wm_status is not None and hasattr(experiment_status, wm_status): status = getattr(experiment_status, wm_status) + if status == experiment_status.UNRESOLVED: + logger.warn( + f"The slurm workflow manager failed to resolve the status of job {job_id}. " + "Enable debug mode (`ramble -d`) for more detailed error messages." + ) return status