summaryrefslogtreecommitdiffstats
path: root/func
diff options
context:
space:
mode:
authorKrzysztof A. Adamski <krzysztofa@gmail.com>2008-06-03 14:06:22 -0400
committerKrzysztof A. Adamski <krzysztofa@gmail.com>2008-06-03 14:06:22 -0400
commitc700b80b34f86f3bc84506ee02fbfa0d30c0e5e9 (patch)
tree5b32e50a7af7a47f2f51ed66da52d18c27bafd29 /func
parent738d94104b6f170f79eac14cbf9ffe910b99876d (diff)
downloadthird_party-func-c700b80b34f86f3bc84506ee02fbfa0d30c0e5e9.tar.gz
third_party-func-c700b80b34f86f3bc84506ee02fbfa0d30c0e5e9.tar.xz
third_party-func-c700b80b34f86f3bc84506ee02fbfa0d30c0e5e9.zip
Handle remote error with async calls.
Diffstat (limited to 'func')
-rw-r--r--func/jobthing.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/func/jobthing.py b/func/jobthing.py
index 75a1d1a..04437ce 100644
--- a/func/jobthing.py
+++ b/func/jobthing.py
@@ -29,6 +29,7 @@ JOB_ID_FINISHED = 1
JOB_ID_LOST_IN_SPACE = 2
JOB_ID_ASYNC_PARTIAL = 3
JOB_ID_ASYNC_FINISHED = 4
+JOB_ID_REMOTE_ERROR = 5
# how long to retain old job records in the job id database
RETAIN_INTERVAL = 60 * 60
@@ -176,7 +177,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) != tuple:
+ minion_interim_rc = JOB_ID_REMOTE_ERROR
+ minion_interim_result = minion_result
+ 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 ]: