aboutsummaryrefslogtreecommitdiff
path: root/job-qmp.c
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2018-05-24 15:26:10 +0200
committerKevin Wolf <kwolf@redhat.com>2018-05-30 13:31:01 +0200
commit1266c9b9f5fa05877b979eece5963a2bd99c3bfd (patch)
tree348fa8501283cccf4a62ace8e262ca6bef6c1939 /job-qmp.c
parent4a5f2779bad769184550869931937acd0707ec3b (diff)
job: Add error message for failing jobs
So far we relied on job->ret and strerror() to produce an error message for failed jobs. Not surprisingly, this tends to result in completely useless messages. This adds a Job.error field that can contain an error string for a failing job, and a parameter to job_completed() that sets the field. As a default, if NULL is passed, we continue to use strerror(job->ret). All existing callers are changed to pass NULL. They can be improved in separate patches. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com>
Diffstat (limited to 'job-qmp.c')
-rw-r--r--job-qmp.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/job-qmp.c b/job-qmp.c
index 7f38f63336..410775df61 100644
--- a/job-qmp.c
+++ b/job-qmp.c
@@ -136,14 +136,9 @@ void qmp_job_dismiss(const char *id, Error **errp)
static JobInfo *job_query_single(Job *job, Error **errp)
{
JobInfo *info;
- const char *errmsg = NULL;
assert(!job_is_internal(job));
- if (job->ret < 0) {
- errmsg = strerror(-job->ret);
- }
-
info = g_new(JobInfo, 1);
*info = (JobInfo) {
.id = g_strdup(job->id),
@@ -151,8 +146,8 @@ static JobInfo *job_query_single(Job *job, Error **errp)
.status = job->status,
.current_progress = job->progress_current,
.total_progress = job->progress_total,
- .has_error = !!errmsg,
- .error = g_strdup(errmsg),
+ .has_error = !!job->error,
+ .error = g_strdup(job->error),
};
return info;