diff --git a/reproman/interface/jobs.py b/reproman/interface/jobs.py index 7a104e76e..e711bf5f8 100644 --- a/reproman/interface/jobs.py +++ b/reproman/interface/jobs.py @@ -16,6 +16,7 @@ from reproman.dochelpers import exc_str from reproman.interface.base import Interface +from reproman.support.external_versions import MissingExternalDependency from reproman.support.jobs.local_registry import LocalRegistry from reproman.support.jobs.orchestrators import ORCHESTRATORS from reproman.resource import get_manager @@ -97,11 +98,16 @@ def show_oneline(job, status=False): """ fmt = "{status}{j[_jobid]} on {j[resource_name]} via {j[submitter]}$ {cmd}" if status: - orc = _resurrect_orc(job) - orc_status = orc.status - _, queried_status = orc.submitter.status - if orc_status == queried_status: - # Drop repeated status (e.g., our and condor's "running"). + try: + orc = _resurrect_orc(job) + orc_status = orc.status + _, queried_status = orc.submitter.status + if orc_status == queried_status: + # Drop repeated status (e.g., our and condor's "running"). + queried_status = None + except Exception as exc: + lgr.warning(exc_str(exc)) + orc_status = "N/A" queried_status = None stat = "[status: {}{}] ".format( orc_status, diff --git a/reproman/support/jobs/orchestrators.py b/reproman/support/jobs/orchestrators.py index 1b163a4a7..a7339c1ef 100644 --- a/reproman/support/jobs/orchestrators.py +++ b/reproman/support/jobs/orchestrators.py @@ -486,7 +486,8 @@ def __init__(self, resource, submission_type, job_spec=None, resurrection=False): if not external_versions["datalad"]: raise MissingExternalDependency( - "DataLad is required for orchestrator '{}'".format(self.name)) + "datalad", + msg="Required for orchestrator '{}'".format(self.name)) super(DataladOrchestrator, self).__init__( resource, submission_type, job_spec, resurrection=resurrection)