qemu: blockjob: Add helper to convert monitor job status to internal state

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2018-12-10 16:56:53 +01:00
parent 8e2a5c3a4c
commit b2d6ae674e
2 changed files with 44 additions and 0 deletions

View File

@ -516,3 +516,44 @@ qemuBlockJobGetByDisk(virDomainDiskDefPtr disk)
return virObjectRef(job);
}
/**
* @monitorstatus: Status of the blockjob from qemu monitor (qemuMonitorJobStatus)
*
* Converts the block job status from the monitor to the one used by
* qemuBlockJobData. If the status is unknown or does not require any handling
* QEMU_BLOCKJOB_TYPE_LAST is returned.
*/
qemuBlockjobState
qemuBlockjobConvertMonitorStatus(int monitorstatus)
{
qemuBlockjobState ret = QEMU_BLOCKJOB_STATE_LAST;
switch ((qemuMonitorJobStatus) monitorstatus) {
case QEMU_MONITOR_JOB_STATUS_READY:
ret = QEMU_BLOCKJOB_STATE_READY;
break;
case QEMU_MONITOR_JOB_STATUS_CONCLUDED:
ret = QEMU_BLOCKJOB_STATE_CONCLUDED;
break;
case QEMU_MONITOR_JOB_STATUS_UNKNOWN:
case QEMU_MONITOR_JOB_STATUS_CREATED:
case QEMU_MONITOR_JOB_STATUS_RUNNING:
case QEMU_MONITOR_JOB_STATUS_PAUSED:
case QEMU_MONITOR_JOB_STATUS_STANDBY:
case QEMU_MONITOR_JOB_STATUS_WAITING:
case QEMU_MONITOR_JOB_STATUS_PENDING:
case QEMU_MONITOR_JOB_STATUS_ABORTING:
case QEMU_MONITOR_JOB_STATUS_UNDEFINED:
case QEMU_MONITOR_JOB_STATUS_NULL:
case QEMU_MONITOR_JOB_STATUS_LAST:
default:
break;
}
return ret;
}

View File

@ -134,3 +134,6 @@ void qemuBlockJobSyncEnd(virDomainObjPtr vm,
qemuBlockJobDataPtr
qemuBlockJobGetByDisk(virDomainDiskDefPtr disk)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
qemuBlockjobState
qemuBlockjobConvertMonitorStatus(int monitorstatus);