[PATCH 00/30] Support more 'curl' and 'ssh' driver options (mostly for unbreaking libguestfs)

Peter Krempa pkrempa at redhat.com
Mon Mar 9 16:22:40 UTC 2020


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




More information about the libvir-list mailing list