mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 19:32:19 +00:00
qemu: capabilities: Introduce QEMU_CAPS_BLOCKDEV_BACKUP
Upcoming commit will enable full backup support (incremental part requires blockdev-reopen, which won't happen in qemu for at least another release). Add a capability that the 'blockdev-backup' job is supported by qemu capped, but limited to when qemu supports QEMU_CAPS_BLOCKDEV. We can also use it in the expression to enable QEMU_CAPS_INCREMENTAL_BACKUP since it's a pre-requisite too. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
fc47ba38aa
commit
12758f040a
@ -622,6 +622,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
|
|||||||
/* 395 */
|
/* 395 */
|
||||||
"vnc-power-control",
|
"vnc-power-control",
|
||||||
"audiodev",
|
"audiodev",
|
||||||
|
"blockdev-backup",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -1557,6 +1558,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
|
|||||||
{ "netdev_add/arg-type/+vhost-vdpa", QEMU_CAPS_NETDEV_VHOST_VDPA },
|
{ "netdev_add/arg-type/+vhost-vdpa", QEMU_CAPS_NETDEV_VHOST_VDPA },
|
||||||
{ "migrate-set-parameters/arg-type/block-bitmap-mapping/bitmaps/transform",
|
{ "migrate-set-parameters/arg-type/block-bitmap-mapping/bitmaps/transform",
|
||||||
QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING },
|
QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING },
|
||||||
|
{ "blockdev-backup", QEMU_CAPS_BLOCKDEV_BACKUP },
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
|
typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
|
||||||
@ -5168,7 +5170,10 @@ virQEMUCapsInitQMPVersionCaps(virQEMUCapsPtr qemuCaps)
|
|||||||
void
|
void
|
||||||
virQEMUCapsInitProcessCapsInterlock(virQEMUCapsPtr qemuCaps)
|
virQEMUCapsInitProcessCapsInterlock(virQEMUCapsPtr qemuCaps)
|
||||||
{
|
{
|
||||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV) &&
|
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV))
|
||||||
|
virQEMUCapsClear(qemuCaps, QEMU_CAPS_BLOCKDEV_BACKUP);
|
||||||
|
|
||||||
|
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_BACKUP) &&
|
||||||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN) &&
|
virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV_REOPEN) &&
|
||||||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING))
|
virQEMUCapsGet(qemuCaps, QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING))
|
||||||
virQEMUCapsSet(qemuCaps, QEMU_CAPS_INCREMENTAL_BACKUP);
|
virQEMUCapsSet(qemuCaps, QEMU_CAPS_INCREMENTAL_BACKUP);
|
||||||
|
@ -602,6 +602,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
|
|||||||
/* 395 */
|
/* 395 */
|
||||||
QEMU_CAPS_VNC_POWER_CONTROL, /* -vnc power-control option */
|
QEMU_CAPS_VNC_POWER_CONTROL, /* -vnc power-control option */
|
||||||
QEMU_CAPS_AUDIODEV, /* -audiodev instead of QEMU_AUDIO_DRV */
|
QEMU_CAPS_AUDIODEV, /* -audiodev instead of QEMU_AUDIO_DRV */
|
||||||
|
QEMU_CAPS_BLOCKDEV_BACKUP, /* qemu supports the blockdev-backup job */
|
||||||
|
|
||||||
QEMU_CAPS_LAST /* this must always be the last item */
|
QEMU_CAPS_LAST /* this must always be the last item */
|
||||||
} virQEMUCapsFlags;
|
} virQEMUCapsFlags;
|
||||||
|
@ -198,6 +198,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>4001050</version>
|
<version>4001050</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>61700242</microcodeVersion>
|
<microcodeVersion>61700242</microcodeVersion>
|
||||||
|
@ -160,6 +160,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>4002000</version>
|
<version>4002000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>39100242</microcodeVersion>
|
<microcodeVersion>39100242</microcodeVersion>
|
||||||
|
@ -246,6 +246,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>4002000</version>
|
<version>4002000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>43100242</microcodeVersion>
|
<microcodeVersion>43100242</microcodeVersion>
|
||||||
|
@ -208,6 +208,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5000000</version>
|
<version>5000000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>61700241</microcodeVersion>
|
<microcodeVersion>61700241</microcodeVersion>
|
||||||
|
@ -217,6 +217,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5000000</version>
|
<version>5000000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>42900241</microcodeVersion>
|
<microcodeVersion>42900241</microcodeVersion>
|
||||||
|
@ -203,6 +203,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5000000</version>
|
<version>5000000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>0</microcodeVersion>
|
<microcodeVersion>0</microcodeVersion>
|
||||||
|
@ -253,6 +253,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5000000</version>
|
<version>5000000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>43100241</microcodeVersion>
|
<microcodeVersion>43100241</microcodeVersion>
|
||||||
|
@ -118,6 +118,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5001000</version>
|
<version>5001000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>0</microcodeVersion>
|
<microcodeVersion>0</microcodeVersion>
|
||||||
|
@ -255,6 +255,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5001000</version>
|
<version>5001000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>43100242</microcodeVersion>
|
<microcodeVersion>43100242</microcodeVersion>
|
||||||
|
@ -212,6 +212,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5002000</version>
|
<version>5002000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>61700243</microcodeVersion>
|
<microcodeVersion>61700243</microcodeVersion>
|
||||||
|
@ -219,6 +219,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5002000</version>
|
<version>5002000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>42900243</microcodeVersion>
|
<microcodeVersion>42900243</microcodeVersion>
|
||||||
|
@ -205,6 +205,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5002000</version>
|
<version>5002000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>0</microcodeVersion>
|
<microcodeVersion>0</microcodeVersion>
|
||||||
|
@ -167,6 +167,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5002000</version>
|
<version>5002000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>39100243</microcodeVersion>
|
<microcodeVersion>39100243</microcodeVersion>
|
||||||
|
@ -256,6 +256,7 @@
|
|||||||
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
<flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
|
||||||
<flag name='vnc-opts'/>
|
<flag name='vnc-opts'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5002000</version>
|
<version>5002000</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>43100243</microcodeVersion>
|
<microcodeVersion>43100243</microcodeVersion>
|
||||||
|
@ -259,6 +259,7 @@
|
|||||||
<flag name='migration-param.block-bitmap-mapping'/>
|
<flag name='migration-param.block-bitmap-mapping'/>
|
||||||
<flag name='vnc-power-control'/>
|
<flag name='vnc-power-control'/>
|
||||||
<flag name='audiodev'/>
|
<flag name='audiodev'/>
|
||||||
|
<flag name='blockdev-backup'/>
|
||||||
<version>5002050</version>
|
<version>5002050</version>
|
||||||
<kvmVersion>0</kvmVersion>
|
<kvmVersion>0</kvmVersion>
|
||||||
<microcodeVersion>43100242</microcodeVersion>
|
<microcodeVersion>43100242</microcodeVersion>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user