With blockdev we need to interpret the fields in order to actually use them in qemu. Unfortunately we didn't do that for some and libguestfs was using them in backing store strings. Model all known curl driver options and pass-through ssh driver options as we don't model the ssh driver. Changes can be fetched from: git fetch https://gitlab.com/pipo.sk/libvirt.git json-props https://gitlab.com/pipo.sk/libvirt/-/commits/json-props Peter Krempa (30): qemuBlockStorageSourceDetachPrepare: Get rid of cleanup section qemu: Don't take double pointer in qemuDomainSecretInfoFree qemuMigrationParamsResetTLS: Adapt to modern memory management qemuMigrationParamsResetTLS: Fix comment qemu: domain: Split out encryption of secret object data qemu: Introduce another helper for creating alias for a 'secret' object qemuDomainSecretStorageSourcePrepare: Fix naming of alias variables qemuDomainDeviceDiskDefPostParseRestoreSecAlias: Hardcode restored aliases qemu: Split out initialization of secrets for 'iscsi' hostdevs qemuDomainSecretAESSetupFromSecret: Use 'qemuAliasForSecret' qemuDomainSecretStorageSourcePrepare: Change aliases for disk secrets qemuDomainGetSecretAESAlias: Replace outstanding uses with qemuAliasForSecret conf: Add support for modifying ssl validation for https/ftps disks conf: Add support for cookies for HTTP based disks conf: Add support for setting timeout and readahead size for network disks qemuDomainValidateStorageSource: Validate new network storage parameters qemuxml2argvtest: Add test case for disks with http(s) source qemu: block: Implement ssl verification configuration qemu: domain: Store data for 'secret' object representing http cookies qemuDomainSecretStorageSourcePrepare: Setup secret for http cookies qemu: Handle hotplug and commandline for secret objects for http cookies qemu: block: Add support for HTTP cookies qemu: block: Implement readahead and timeout properties for 'curl' driver virstoragefile: Add JSON parser for 'sslverify', 'readahead', 'cookies' and 'timeout' virStorageSourceParseBackingJSONUri: Handle undocumented value 'off' for sslverify qemublocktest: Load QMP schema earlier qemublocktest: Extract schema root for blockdev-add validation qemublocktest: XMLjsonXML: Test formatting/parsing of modern JSON qemublocktest: Add JSON->JSON test cases for block device backends qemu: Pass through arguments of 'ssh' block driver used by libguestfs docs/formatdomain.html.in | 35 ++ docs/schemas/domaincommon.rng | 98 ++++- src/conf/domain_conf.c | 119 +++++++ src/libvirt_private.syms | 1 + src/qemu/qemu_alias.c | 32 +- src/qemu/qemu_alias.h | 4 +- src/qemu/qemu_block.c | 50 ++- src/qemu/qemu_block.h | 3 + src/qemu/qemu_command.c | 5 + src/qemu/qemu_domain.c | 337 +++++++++++------- src/qemu/qemu_domain.h | 7 +- src/qemu/qemu_hotplug.c | 4 +- src/qemu/qemu_migration_params.c | 16 +- src/util/virstoragefile.c | 229 +++++++++++- src/util/virstoragefile.h | 24 ++ .../disk-network-http.xml | 19 + tests/qemublocktest.c | 136 ++++++- .../jsontojson/curl-libguestfs-in.json | 1 + .../jsontojson/curl-libguestfs-out.json | 9 + .../ssh-passthrough-libguestfs-in.json | 1 + .../ssh-passthrough-libguestfs-out.json | 14 + tests/qemustatusxml2xmldata/modern-in.xml | 1 + ...-backing-chains-noindex.x86_64-2.12.0.args | 4 +- ...-backing-chains-noindex.x86_64-latest.args | 6 +- ...sk-hostdev-scsi-virtio-iscsi-auth-AES.args | 6 +- .../disk-network-http.x86_64-latest.args | 67 ++++ tests/qemuxml2argvdata/disk-network-http.xml | 61 ++++ .../disk-network-iscsi.x86_64-2.12.0.args | 12 +- .../disk-network-iscsi.x86_64-latest.args | 8 +- .../disk-network-rbd.x86_64-2.12.0.args | 4 +- .../disk-network-rbd.x86_64-latest.args | 4 +- ...isk-network-source-auth.x86_64-2.12.0.args | 10 +- ...isk-network-source-auth.x86_64-latest.args | 8 +- .../disk-nvme.x86_64-latest.args | 4 +- .../encrypted-disk-usage.args | 4 +- tests/qemuxml2argvdata/encrypted-disk.args | 4 +- .../luks-disks-source-qcow2.args | 24 +- ...luks-disks-source-qcow2.x86_64-latest.args | 32 +- tests/qemuxml2argvdata/luks-disks-source.args | 26 +- tests/qemuxml2argvdata/luks-disks.args | 10 +- tests/qemuxml2argvdata/user-aliases.args | 4 +- tests/qemuxml2argvtest.c | 1 + tests/virstoragetest.c | 30 ++ 43 files changed, 1197 insertions(+), 277 deletions(-) create mode 100644 tests/qemublocktestdata/jsontojson/curl-libguestfs-in.json create mode 100644 tests/qemublocktestdata/jsontojson/curl-libguestfs-out.json create mode 100644 tests/qemublocktestdata/jsontojson/ssh-passthrough-libguestfs-in.json create mode 100644 tests/qemublocktestdata/jsontojson/ssh-passthrough-libguestfs-out.json create mode 100644 tests/qemuxml2argvdata/disk-network-http.x86_64-latest.args create mode 100644 tests/qemuxml2argvdata/disk-network-http.xml -- 2.24.1