qemu: blockjob: Add job types for 'snapshot-save/delete'

The snapshot creation/deletion QMP commands use the qemu 'job' API
to signal completion thus we need to add corresponding job types.

As the job handles everything internally we don't store anything about
the job.

Signed-off-by: Nikolai Barybin <nikolai.barybin@virtuozzo.com>
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
Nikolai Barybin via Devel 2024-07-17 21:21:37 +03:00 committed by Peter Krempa
parent 5d0773633a
commit ce4ed8deef
4 changed files with 21 additions and 0 deletions

View File

@ -3775,6 +3775,8 @@ qemuBlockPivot(virDomainObj *vm,
case QEMU_BLOCKJOB_TYPE_BACKUP:
case QEMU_BLOCKJOB_TYPE_INTERNAL:
case QEMU_BLOCKJOB_TYPE_CREATE:
case QEMU_BLOCKJOB_TYPE_SNAPSHOT_SAVE:
case QEMU_BLOCKJOB_TYPE_SNAPSHOT_DELETE:
case QEMU_BLOCKJOB_TYPE_BROKEN:
virReportError(VIR_ERR_OPERATION_INVALID,
_("job type '%1$s' does not support pivot"),

View File

@ -68,6 +68,8 @@ VIR_ENUM_IMPL(qemuBlockjob,
"backup",
"",
"create",
"snapshot-save",
"snapshot-delete",
"broken");
static virClass *qemuBlockJobDataClass;
@ -1455,6 +1457,11 @@ qemuBlockJobEventProcessConcludedTransition(qemuBlockJobData *job,
progressTotal);
break;
case QEMU_BLOCKJOB_TYPE_SNAPSHOT_SAVE:
case QEMU_BLOCKJOB_TYPE_SNAPSHOT_DELETE:
/* The internal snapshot jobs don't need any extra handling */
break;
case QEMU_BLOCKJOB_TYPE_BROKEN:
case QEMU_BLOCKJOB_TYPE_NONE:
case QEMU_BLOCKJOB_TYPE_INTERNAL:

View File

@ -65,6 +65,8 @@ typedef enum {
/* Additional enum values local to qemu */
QEMU_BLOCKJOB_TYPE_INTERNAL,
QEMU_BLOCKJOB_TYPE_CREATE,
QEMU_BLOCKJOB_TYPE_SNAPSHOT_SAVE,
QEMU_BLOCKJOB_TYPE_SNAPSHOT_DELETE,
QEMU_BLOCKJOB_TYPE_BROKEN,
QEMU_BLOCKJOB_TYPE_LAST
} qemuBlockJobType;

View File

@ -2478,6 +2478,11 @@ qemuDomainObjPrivateXMLFormatBlockjobIterator(void *payload,
}
break;
case QEMU_BLOCKJOB_TYPE_SNAPSHOT_SAVE:
case QEMU_BLOCKJOB_TYPE_SNAPSHOT_DELETE:
/* No private data for internal snapshot jobs */
break;
case QEMU_BLOCKJOB_TYPE_BROKEN:
case QEMU_BLOCKJOB_TYPE_NONE:
case QEMU_BLOCKJOB_TYPE_INTERNAL:
@ -3030,6 +3035,11 @@ qemuDomainObjPrivateXMLParseBlockjobDataSpecific(qemuBlockJobData *job,
goto broken;
break;
case QEMU_BLOCKJOB_TYPE_SNAPSHOT_SAVE:
case QEMU_BLOCKJOB_TYPE_SNAPSHOT_DELETE:
/* No extra data for internal snapshot jobs. */
break;
case QEMU_BLOCKJOB_TYPE_BROKEN:
case QEMU_BLOCKJOB_TYPE_NONE:
case QEMU_BLOCKJOB_TYPE_INTERNAL: