Skip to content

Commit 3c4b259

Browse files
committed
lava_callback.py: Handle failed jobs properly
As mentioned in kernelci/kernelci-api#474, even if job failed, node still registered as pass, and trying to upload non-existing log file. Fix that, if job is not completed, set node status to incomplete and do not upload log file. Fixes: kernelci/kernelci-api#474 Depends on: kernelci/kernelci-core#2363 Signed-off-by: Denys Fedoryshchenko <denys.f@collabora.com>
1 parent 9622ea0 commit 3c4b259

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/lava_callback.py

+14-6
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,20 @@ def async_job_submit(api_helper, node_id, job_callback):
7171
# Or at least first record job_id in node metadata
7272

7373
log_parser = job_callback.get_log_parser()
74-
storage_config_name = job_callback.get_meta('storage_config_name')
75-
storage = _get_storage(storage_config_name)
76-
log_txt_url = _upload_log(log_parser, job_node, storage)
77-
job_node['artifacts']['lava_log'] = log_txt_url
78-
hierarchy = job_callback.get_hierarchy(results, job_node)
79-
api_helper.submit_results(hierarchy, job_node)
74+
job_result = log_parser.get_job_result()
75+
if job_result and job_result == 'pass':
76+
storage_config_name = job_callback.get_meta('storage_config_name')
77+
storage = _get_storage(storage_config_name)
78+
log_txt_url = _upload_log(log_parser, job_node, storage)
79+
job_node['artifacts']['lava_log'] = log_txt_url
80+
hierarchy = job_callback.get_hierarchy(results, job_node)
81+
api_helper.submit_results(hierarchy, job_node)
82+
else:
83+
# As in https://github.com/kernelci/kernelci-api/issues/474
84+
# failed LAVA job should not upload empty log file and set result
85+
# as 'pass'
86+
job_node['result'] = job_result
87+
api_helper.api.node.update(job_node)
8088

8189

8290
@app.post('/node/<node_id>')

0 commit comments

Comments
 (0)