Commit ab9ba614 authored by John Snow's avatar John Snow Committed by Kevin Wolf
Browse files

blockjob: expose error string via query



When we've reached the concluded state, we need to expose the error
state if applicable. Add the new field.

This should be sufficient for determining if a job completed
successfully or not after concluding; if we want to discriminate
based on how it failed more mechanically, we can always add an
explicit return code enumeration later.

I didn't bother to make it only show up if we are in the concluded
state; I don't think it's necessary.

Cc: qemu-stable@nongnu.org
Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarAlberto Garcia <berto@igalia.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 83592184
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -831,6 +831,8 @@ BlockJobInfo *block_job_query(BlockJob *job, Error **errp)
    info->status    = job->status;
    info->auto_finalize = job->auto_finalize;
    info->auto_dismiss  = job->auto_dismiss;
    info->has_error = job->ret != 0;
    info->error     = job->ret ? g_strdup(strerror(-job->ret)) : NULL;
    return info;
}

+5 −1
Original line number Diff line number Diff line
@@ -1172,6 +1172,9 @@
# @auto-dismiss: Job will dismiss itself when CONCLUDED, moving to the NULL
#                state and disappearing from the query list. (since 2.12)
#
# @error: Error information if the job did not complete successfully.
#         Not set if the job completed successfully. (since 2.12.1)
#
# Since: 1.1
##
{ 'struct': 'BlockJobInfo',
@@ -1179,7 +1182,8 @@
           'offset': 'int', 'busy': 'bool', 'paused': 'bool', 'speed': 'int',
           'io-status': 'BlockDeviceIoStatus', 'ready': 'bool',
           'status': 'BlockJobStatus',
           'auto-finalize': 'bool', 'auto-dismiss': 'bool' } }
           'auto-finalize': 'bool', 'auto-dismiss': 'bool',
           '*error': 'str' } }

##
# @query-block-jobs: