[PATCH 00/22] qemu: Refactor blockdev protocol JSON generators ('raw' driver removal part 2)

Peter Krempa posted 22 patches 6 months ago
Failed in applying to current master (apply log)
src/conf/domain_conf.c                        |   2 +-
src/conf/domain_conf.h                        |  39 +-
src/conf/storage_source_conf.h                |   8 +-
src/conf/virconftypes.h                       |  39 +-
src/qemu/qemu_block.c                         | 349 +++++++++---------
src/qemu/qemu_block.h                         |   6 +-
src/qemu/qemu_command.c                       |  63 ++--
src/qemu/qemu_domain.c                        |  33 +-
src/qemu/qemu_domain.h                        |   4 +-
src/qemu/qemu_migration.c                     |   5 +-
tests/qemublocktest.c                         |  41 +-
.../jsontojson/curl-libguestfs-out.json       |   5 +-
.../ssh-passthrough-libguestfs-out.json       |   4 +-
.../xml2json/dir-fat-cache.json               |   6 +-
.../file-backing_basic-cache-directsync.json  |  24 +-
.../file-backing_basic-cache-none.json        |  24 +-
.../file-backing_basic-cache-unsafe.json      |  24 +-
.../file-backing_basic-cache-writeback.json   |  24 +-
...file-backing_basic-cache-writethrough.json |  24 +-
.../xml2json/file-raw-aio_native.json         |   6 +-
...work-qcow2-backing-chain-cache-unsafe.json |  12 +-
.../blkdeviotune-group-num.x86_64-latest.args |   4 +-
...blkdeviotune-max-length.x86_64-latest.args |   4 +-
.../blkdeviotune-max.x86_64-latest.args       |   4 +-
.../blkdeviotune.x86_64-latest.args           |   4 +-
.../controller-order.x86_64-latest.args       |   2 +-
.../disk-aio.x86_64-latest.args               |   2 +-
.../disk-arm-virtio-sd.aarch64-latest.args    |   2 +
tests/qemuxml2argvdata/disk-arm-virtio-sd.xml |  16 +
.../disk-cache.x86_64-latest.args             |  10 +-
.../disk-error-policy-s390x.s390x-latest.args |   6 +-
.../disk-error-policy.x86_64-latest.args      |   6 +-
.../disk-metadata-cache.x86_64-latest.args    |   6 +-
.../disk-network-nfs.x86_64-latest.args       |   2 +-
...rk-tlsx509-nbd-hostname.x86_64-latest.args |   2 +-
...disk-network-tlsx509-nbd.x86_64-5.2.0.args |   2 +-
...isk-network-tlsx509-nbd.x86_64-latest.args |   2 +-
...isk-network-tlsx509-vxhs.x86_64-5.0.0.args |   6 +-
.../disk-nvme.x86_64-latest.args              |   2 +-
.../disk-shared.x86_64-latest.args            |   6 +-
.../disk-slices.x86_64-latest.args            |   8 +-
.../disk-snapshot.x86_64-latest.args          |   4 +-
.../disk-transient.x86_64-latest.args         |   2 +-
.../disk-vhostvdpa.x86_64-latest.args         |   2 +-
.../name-escape.x86_64-latest.args            |   2 +-
.../user-aliases.x86_64-latest.args           |   4 +-
...eo-bochs-display-device.x86_64-latest.args |   2 +-
...-device-pciaddr-default.x86_64-latest.args |   2 +-
...video-qxl-device-vgamem.x86_64-latest.args |   2 +-
.../video-qxl-device.x86_64-latest.args       |   2 +-
...o-qxl-sec-device-vgamem.x86_64-latest.args |   2 +-
.../video-qxl-sec-device.x86_64-latest.args   |   2 +-
...eo-ramfb-display-device.x86_64-latest.args |   2 +-
...video-vga-device-vgamem.x86_64-latest.args |   2 +-
.../video-vga-device.x86_64-latest.args       |   2 +-
.../video-virtio-blob-off.x86_64-latest.args  |   2 +-
.../video-virtio-blob-on.x86_64-latest.args   |   2 +-
...video-virtio-gpu-device.x86_64-latest.args |   2 +-
...video-virtio-gpu-sdl-gl.x86_64-latest.args |   2 +-
...deo-virtio-gpu-spice-gl.x86_64-latest.args |   2 +-
.../video-virtio-gpu-virgl.x86_64-latest.args |   2 +-
.../video-virtio-vga.x86_64-latest.args       |   2 +-
.../disk-arm-virtio-sd.aarch64-latest.xml     |  16 +
63 files changed, 438 insertions(+), 462 deletions(-)
[PATCH 00/22] qemu: Refactor blockdev protocol JSON generators ('raw' driver removal part 2)
Posted by Peter Krempa 6 months ago
Second part cleans up tests and various bits and refactors the protocol
blockdev JSON configuration generator to be reusable.

This still doesn't change the configuration of the blockdevs, just
reorders some arguments.

Peter Krempa (22):
  qemuxml2(argv|xml)test: Add network backed disk type='sd'
  qemu: migration: No longer avoid 'auto-read-only' option for migration
  qemuBuildDriveSourceStr: Absorb only use of qemuDiskSourceGetProps
  qemuBlockStorageSourceGetBackendProps: Remove unnecessary indent for
    non-nbdkit code path
  conf: Move definition of some disk type enums to a common header
  virStorageSource: Use proper type for shadow copies of
    iomode/cachemode/discard/detect_zeroes
  qemuDomainDiskCachemodeFlags: Simplify usage
  qemuBlockStorageSourceGetBlockdevGetCacheProps: Return the cache
    object rather than appending it
  qemublocktest: Use "target only" mode in 'testJSONtoJSON' and
    'testBackingXMLjsonXML'
  qemublocktest: Drop 'sheepdog' and 'vxhs' test cases
  qemublocktest: Fix logical bug in TEST_JSON_FORMAT macro
  qemublocktest: testBackingXMLjsonXML: Drop 'legacy' mode
  qemuBlockStorageSourceGetBackendProps: Unify cases for '!onlytarget'
    and '!legacy'
  virDomainDiskGetDetectZeroesMode: Return proper type
  qemuBlockStorageSourceGetBackendProps: Unify ordering of fields
  qemu: block: Add helper to add common properties for -blockdev
    configuration
  qemu: block: Use qemuBlockStorageSourceAddBlockdevCommonProps for
    storage slice
  qemuBlockStorageSourceGetBackendProps: Introduce
    QEMU_BLOCK_STORAGE_SOURCE_BACKEND_PROPS_EFFECTIVE_NODE
  qemuBuildHostdevSCSIAttachPrepare: Use "effective node" mode for
    getting blockdev props
  qemuBlockStorageSourceGetBackendProps: Use
    qemuBlockStorageSourceAddBlockdevCommonProps
  qemuBlockStorageSourceGetBackendProps: Remove unused logic for
    (auto-)read-only flags
  qemu: block: Remove unused flags
    QEMU_BLOCK_STORAGE_SOURCE_BACKEND_PROPS_ flags

 src/conf/domain_conf.c                        |   2 +-
 src/conf/domain_conf.h                        |  39 +-
 src/conf/storage_source_conf.h                |   8 +-
 src/conf/virconftypes.h                       |  39 +-
 src/qemu/qemu_block.c                         | 349 +++++++++---------
 src/qemu/qemu_block.h                         |   6 +-
 src/qemu/qemu_command.c                       |  63 ++--
 src/qemu/qemu_domain.c                        |  33 +-
 src/qemu/qemu_domain.h                        |   4 +-
 src/qemu/qemu_migration.c                     |   5 +-
 tests/qemublocktest.c                         |  41 +-
 .../jsontojson/curl-libguestfs-out.json       |   5 +-
 .../ssh-passthrough-libguestfs-out.json       |   4 +-
 .../xml2json/dir-fat-cache.json               |   6 +-
 .../file-backing_basic-cache-directsync.json  |  24 +-
 .../file-backing_basic-cache-none.json        |  24 +-
 .../file-backing_basic-cache-unsafe.json      |  24 +-
 .../file-backing_basic-cache-writeback.json   |  24 +-
 ...file-backing_basic-cache-writethrough.json |  24 +-
 .../xml2json/file-raw-aio_native.json         |   6 +-
 ...work-qcow2-backing-chain-cache-unsafe.json |  12 +-
 .../blkdeviotune-group-num.x86_64-latest.args |   4 +-
 ...blkdeviotune-max-length.x86_64-latest.args |   4 +-
 .../blkdeviotune-max.x86_64-latest.args       |   4 +-
 .../blkdeviotune.x86_64-latest.args           |   4 +-
 .../controller-order.x86_64-latest.args       |   2 +-
 .../disk-aio.x86_64-latest.args               |   2 +-
 .../disk-arm-virtio-sd.aarch64-latest.args    |   2 +
 tests/qemuxml2argvdata/disk-arm-virtio-sd.xml |  16 +
 .../disk-cache.x86_64-latest.args             |  10 +-
 .../disk-error-policy-s390x.s390x-latest.args |   6 +-
 .../disk-error-policy.x86_64-latest.args      |   6 +-
 .../disk-metadata-cache.x86_64-latest.args    |   6 +-
 .../disk-network-nfs.x86_64-latest.args       |   2 +-
 ...rk-tlsx509-nbd-hostname.x86_64-latest.args |   2 +-
 ...disk-network-tlsx509-nbd.x86_64-5.2.0.args |   2 +-
 ...isk-network-tlsx509-nbd.x86_64-latest.args |   2 +-
 ...isk-network-tlsx509-vxhs.x86_64-5.0.0.args |   6 +-
 .../disk-nvme.x86_64-latest.args              |   2 +-
 .../disk-shared.x86_64-latest.args            |   6 +-
 .../disk-slices.x86_64-latest.args            |   8 +-
 .../disk-snapshot.x86_64-latest.args          |   4 +-
 .../disk-transient.x86_64-latest.args         |   2 +-
 .../disk-vhostvdpa.x86_64-latest.args         |   2 +-
 .../name-escape.x86_64-latest.args            |   2 +-
 .../user-aliases.x86_64-latest.args           |   4 +-
 ...eo-bochs-display-device.x86_64-latest.args |   2 +-
 ...-device-pciaddr-default.x86_64-latest.args |   2 +-
 ...video-qxl-device-vgamem.x86_64-latest.args |   2 +-
 .../video-qxl-device.x86_64-latest.args       |   2 +-
 ...o-qxl-sec-device-vgamem.x86_64-latest.args |   2 +-
 .../video-qxl-sec-device.x86_64-latest.args   |   2 +-
 ...eo-ramfb-display-device.x86_64-latest.args |   2 +-
 ...video-vga-device-vgamem.x86_64-latest.args |   2 +-
 .../video-vga-device.x86_64-latest.args       |   2 +-
 .../video-virtio-blob-off.x86_64-latest.args  |   2 +-
 .../video-virtio-blob-on.x86_64-latest.args   |   2 +-
 ...video-virtio-gpu-device.x86_64-latest.args |   2 +-
 ...video-virtio-gpu-sdl-gl.x86_64-latest.args |   2 +-
 ...deo-virtio-gpu-spice-gl.x86_64-latest.args |   2 +-
 .../video-virtio-gpu-virgl.x86_64-latest.args |   2 +-
 .../video-virtio-vga.x86_64-latest.args       |   2 +-
 .../disk-arm-virtio-sd.aarch64-latest.xml     |  16 +
 63 files changed, 438 insertions(+), 462 deletions(-)

-- 
2.41.0
Re: [PATCH 00/22] qemu: Refactor blockdev protocol JSON generators ('raw' driver removal part 2)
Posted by Ján Tomko 6 months ago
On a Wednesday in 2023, Peter Krempa wrote:
>Second part cleans up tests and various bits and refactors the protocol
>blockdev JSON configuration generator to be reusable.
>
>This still doesn't change the configuration of the blockdevs, just
>reorders some arguments.
>
>Peter Krempa (22):
>  qemuxml2(argv|xml)test: Add network backed disk type='sd'
>  qemu: migration: No longer avoid 'auto-read-only' option for migration
>  qemuBuildDriveSourceStr: Absorb only use of qemuDiskSourceGetProps
>  qemuBlockStorageSourceGetBackendProps: Remove unnecessary indent for
>    non-nbdkit code path
>  conf: Move definition of some disk type enums to a common header
>  virStorageSource: Use proper type for shadow copies of
>    iomode/cachemode/discard/detect_zeroes
>  qemuDomainDiskCachemodeFlags: Simplify usage
>  qemuBlockStorageSourceGetBlockdevGetCacheProps: Return the cache
>    object rather than appending it
>  qemublocktest: Use "target only" mode in 'testJSONtoJSON' and
>    'testBackingXMLjsonXML'
>  qemublocktest: Drop 'sheepdog' and 'vxhs' test cases
>  qemublocktest: Fix logical bug in TEST_JSON_FORMAT macro
>  qemublocktest: testBackingXMLjsonXML: Drop 'legacy' mode
>  qemuBlockStorageSourceGetBackendProps: Unify cases for '!onlytarget'
>    and '!legacy'
>  virDomainDiskGetDetectZeroesMode: Return proper type
>  qemuBlockStorageSourceGetBackendProps: Unify ordering of fields
>  qemu: block: Add helper to add common properties for -blockdev
>    configuration
>  qemu: block: Use qemuBlockStorageSourceAddBlockdevCommonProps for
>    storage slice
>  qemuBlockStorageSourceGetBackendProps: Introduce
>    QEMU_BLOCK_STORAGE_SOURCE_BACKEND_PROPS_EFFECTIVE_NODE
>  qemuBuildHostdevSCSIAttachPrepare: Use "effective node" mode for
>    getting blockdev props
>  qemuBlockStorageSourceGetBackendProps: Use
>    qemuBlockStorageSourceAddBlockdevCommonProps
>  qemuBlockStorageSourceGetBackendProps: Remove unused logic for
>    (auto-)read-only flags
>  qemu: block: Remove unused flags
>    QEMU_BLOCK_STORAGE_SOURCE_BACKEND_PROPS_ flags
>
> src/conf/domain_conf.c                        |   2 +-
> src/conf/domain_conf.h                        |  39 +-
> src/conf/storage_source_conf.h                |   8 +-
> src/conf/virconftypes.h                       |  39 +-
> src/qemu/qemu_block.c                         | 349 +++++++++---------
> src/qemu/qemu_block.h                         |   6 +-
> src/qemu/qemu_command.c                       |  63 ++--
> src/qemu/qemu_domain.c                        |  33 +-
> src/qemu/qemu_domain.h                        |   4 +-
> src/qemu/qemu_migration.c                     |   5 +-
> tests/qemublocktest.c                         |  41 +-
> .../jsontojson/curl-libguestfs-out.json       |   5 +-
> .../ssh-passthrough-libguestfs-out.json       |   4 +-
> .../xml2json/dir-fat-cache.json               |   6 +-
> .../file-backing_basic-cache-directsync.json  |  24 +-
> .../file-backing_basic-cache-none.json        |  24 +-
> .../file-backing_basic-cache-unsafe.json      |  24 +-
> .../file-backing_basic-cache-writeback.json   |  24 +-
> ...file-backing_basic-cache-writethrough.json |  24 +-
> .../xml2json/file-raw-aio_native.json         |   6 +-
> ...work-qcow2-backing-chain-cache-unsafe.json |  12 +-
> .../blkdeviotune-group-num.x86_64-latest.args |   4 +-
> ...blkdeviotune-max-length.x86_64-latest.args |   4 +-
> .../blkdeviotune-max.x86_64-latest.args       |   4 +-
> .../blkdeviotune.x86_64-latest.args           |   4 +-
> .../controller-order.x86_64-latest.args       |   2 +-
> .../disk-aio.x86_64-latest.args               |   2 +-
> .../disk-arm-virtio-sd.aarch64-latest.args    |   2 +
> tests/qemuxml2argvdata/disk-arm-virtio-sd.xml |  16 +
> .../disk-cache.x86_64-latest.args             |  10 +-
> .../disk-error-policy-s390x.s390x-latest.args |   6 +-
> .../disk-error-policy.x86_64-latest.args      |   6 +-
> .../disk-metadata-cache.x86_64-latest.args    |   6 +-
> .../disk-network-nfs.x86_64-latest.args       |   2 +-
> ...rk-tlsx509-nbd-hostname.x86_64-latest.args |   2 +-
> ...disk-network-tlsx509-nbd.x86_64-5.2.0.args |   2 +-
> ...isk-network-tlsx509-nbd.x86_64-latest.args |   2 +-
> ...isk-network-tlsx509-vxhs.x86_64-5.0.0.args |   6 +-
> .../disk-nvme.x86_64-latest.args              |   2 +-
> .../disk-shared.x86_64-latest.args            |   6 +-
> .../disk-slices.x86_64-latest.args            |   8 +-
> .../disk-snapshot.x86_64-latest.args          |   4 +-
> .../disk-transient.x86_64-latest.args         |   2 +-
> .../disk-vhostvdpa.x86_64-latest.args         |   2 +-
> .../name-escape.x86_64-latest.args            |   2 +-
> .../user-aliases.x86_64-latest.args           |   4 +-
> ...eo-bochs-display-device.x86_64-latest.args |   2 +-
> ...-device-pciaddr-default.x86_64-latest.args |   2 +-
> ...video-qxl-device-vgamem.x86_64-latest.args |   2 +-
> .../video-qxl-device.x86_64-latest.args       |   2 +-
> ...o-qxl-sec-device-vgamem.x86_64-latest.args |   2 +-
> .../video-qxl-sec-device.x86_64-latest.args   |   2 +-
> ...eo-ramfb-display-device.x86_64-latest.args |   2 +-
> ...video-vga-device-vgamem.x86_64-latest.args |   2 +-
> .../video-vga-device.x86_64-latest.args       |   2 +-
> .../video-virtio-blob-off.x86_64-latest.args  |   2 +-
> .../video-virtio-blob-on.x86_64-latest.args   |   2 +-
> ...video-virtio-gpu-device.x86_64-latest.args |   2 +-
> ...video-virtio-gpu-sdl-gl.x86_64-latest.args |   2 +-
> ...deo-virtio-gpu-spice-gl.x86_64-latest.args |   2 +-
> .../video-virtio-gpu-virgl.x86_64-latest.args |   2 +-
> .../video-virtio-vga.x86_64-latest.args       |   2 +-
> .../disk-arm-virtio-sd.aarch64-latest.xml     |  16 +
> 63 files changed, 438 insertions(+), 462 deletions(-)
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano