diff options
author | Krzysztof A. Adamski <krzysztofa@gmail.com> | 2008-06-07 16:12:03 -0400 |
---|---|---|
committer | Krzysztof A. Adamski <krzysztofa@gmail.com> | 2008-06-07 16:12:03 -0400 |
commit | fdabc175f9ef5ee9d1e6887409be58dd44cf661d (patch) | |
tree | 94f3ddd06ffa18d76ba0173d46bbfa456b8e3bd9 /func | |
parent | 721fa16f64627fcd5b0d0b5c4f9d9e382729bfa0 (diff) | |
download | third_party-func-fdabc175f9ef5ee9d1e6887409be58dd44cf661d.tar.gz third_party-func-fdabc175f9ef5ee9d1e6887409be58dd44cf661d.tar.xz third_party-func-fdabc175f9ef5ee9d1e6887409be58dd44cf661d.zip |
Handle remote errors with async calls.
Diffstat (limited to 'func')
-rw-r--r-- | func/jobthing.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/func/jobthing.py b/func/jobthing.py index 0e613f8..a190dff 100644 --- a/func/jobthing.py +++ b/func/jobthing.py @@ -28,6 +28,7 @@ JOB_ID_RUNNING = 0 JOB_ID_FINISHED = 1 JOB_ID_LOST_IN_SPACE = 2 JOB_ID_PARTIAL = 3 +JOB_ID_REMOTE_ERROR = 4 # how long to retain old job records in the job id database RETAIN_INTERVAL = 60 * 60 @@ -182,7 +183,11 @@ def job_status(jobid, client_class=None): client = client_class(host, noglobs=True, async=False) minion_result = client.jobs.job_status(minion_job) - (minion_interim_rc, minion_interim_result) = minion_result + if type(minion_result) != list or len(minion_result)!=2: + minion_interim_rc = JOB_ID_REMOTE_ERROR + minion_interim_result = minion_result[:3] + else: + (minion_interim_rc, minion_interim_result) = minion_result if minion_interim_rc not in [ JOB_ID_RUNNING ]: if minion_interim_rc in [ JOB_ID_LOST_IN_SPACE ]: |