v6: https://www.redhat.com/archives/libvir-list/2017-August/msg00993.html Changes/notes since v6: Patch1 - Used the "right" process to create the files. There's also a separate patch on list which I used mainly to "extract" the details/needs from being associated specifically with the addition of VxHS support Patch2 - Altered the commit message slightly to note that lack of ability to actually check that even though something is introspectible, there's no "non-hacky" way to determine if the QEMU image being used was built "--enable=vxhs" *unless* (as Jeff Cody points out) we scan --help output for vxhs within the "Supported formats:" line. We're avoiding that path for many different reasons. Patch3 -> Patch5 - No change, patches ACKed. Patch6 - Removed qemuCaps from qemuBlockStorageSourceGetVxHSProps and created a qemuProcessStartValidateDisks which will run the disk list looking for NETWORK and VXHS to ensure the QEMU_CAPS_VXHS bit is set. Also added a note here similar to patch2 describing the "gotcha" with the processing. Patch7 - Altered the text of the vxhs_tls description a bit, not much Patch8 - Altered the formatdomain.html.in description a bit in order to remove the previous restriction surrounding when vxhs_tls = 0, but src->haveTLS = YES. Added a tlsFromConfig boolean to virStorageSource to match the same logic as chardev's use. Documented it's use though as every time I've read that for chardev, I've first said tlsFromConfig must mean domain config, when in fact it's meant to be qemu.conf. Make code adjustments to handle tlsFromConfig Patch9 - Altered the order here - used to be flip-flopped with subsequent patch. Create the qemuDomainPrepareDiskSource[TLS] API's in order manage the src->haveTLS setting just as we've done for chardev. Also, introduce and manage a virStorageSource "tlsAlias" field. This is where we'll "set" the alias to be used. Patch10- Fixed up the virStorageSourceParseBackingJSONVxHS and TEST_BACKING_PARSE to manage the new src->tlsAlias field. Patch11- Make this all work for qemu_command *and* qemu_hotplug - well theoretically at least. The hotplug code is new in this patch - it has essentially copied what was needed from qemuDomainAddChardevTLSObjects and applied it to the needs for disks in general, but mainly for VxHS in particular. The qemuDomainAddDiskTLSObjects also doesn't set a 'tlscreds' boolean like Chardev does since JSON object generation doesn't occur in the depths of qemu_monitor_json, but rather it occurs in qemu_block and we have everything we need there. Probably could have done the chardev code differently to keep the TLS alias around... Although I don't believe VxHS has support/need for MassUSB and SCSI Disk operations, adding the infrastructure there should be usable for future needs. I also left a note about future needs that may arise if some network disk type requires a secret to decrypt a server key (although I cannot imagine the need, someone else may have a better imagination than me). The rest of the qemu_command changes remove the qemuCaps and diskAlias parameters from the qemuBlockStorageSourceGetBackendProps API and use what's been (hopefully) properly set up during qemuDomainPrepareDiskSourceTLS. Finally former patch12 has been removed since there is no restriction regarding vxhs_tls = 0 and "tls = 'yes'"... Also former patch13 has been merged into patch11. Still to be done: Patch12 - A news.xml article for 3.8.0, but 3.7.0 isn't closed yet so I'm waiting... Testing, testing, testing, testing, testing, and more testing. Hopefully even some hotplug testing as I have absolutely no way to know if the changes I've made actually work since I don't have a Veritas enviroment set up. I leave the testing/debugging to Ashish. I do believe that patches 1-5 (e.g. everything not TLS related are reasonable and ready once 3.8.0 opens for business). Ashish Mittal (8): storage: Introduce VIR_STORAGE_NET_PROTOCOL_VXHS docs: Add schema and docs for Veritas HyperScale (VxHS) util: storage: Add JSON backing volume parse for VxHS qemu: Add qemu command line generation for a VxHS block device conf: Introduce TLS options for VxHS block device clients util: Add TLS attributes to virStorageSource util: Add virstoragetest to parse/format a tls='yes' qemu: Add TLS support for Veritas HyperScale (VxHS) John Ferlan (3): qemu: Add QEMU 2.10 x86_64 the generated capabilities qemu: Detect support for vxhs qemu: Introduce qemuDomainPrepareDiskSource docs/formatdomain.html.in | 45 +- docs/schemas/domaincommon.rng | 18 + src/conf/domain_conf.c | 28 +- src/libxl/libxl_conf.c | 1 + src/qemu/libvirtd_qemu.aug | 4 + src/qemu/qemu.conf | 34 + src/qemu/qemu_block.c | 44 + src/qemu/qemu_capabilities.c | 4 + src/qemu/qemu_capabilities.h | 3 + src/qemu/qemu_command.c | 38 + src/qemu/qemu_conf.c | 16 + src/qemu/qemu_conf.h | 3 + src/qemu/qemu_domain.c | 71 + src/qemu/qemu_domain.h | 11 + src/qemu/qemu_driver.c | 3 + src/qemu/qemu_hotplug.c | 73 + src/qemu/qemu_parse_command.c | 15 + src/qemu/qemu_process.c | 33 + src/qemu/test_libvirtd_qemu.aug.in | 2 + src/util/virstoragefile.c | 58 +- src/util/virstoragefile.h | 14 + src/xenconfig/xen_xl.c | 1 + .../caps_2.10.0.x86_64.replies | 18144 +++++++++++++++++++ tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 799 + tests/qemucapabilitiestest.c | 1 + ...-disk-drive-network-tlsx509-multidisk-vxhs.args | 43 + ...v-disk-drive-network-tlsx509-multidisk-vxhs.xml | 50 + ...muxml2argv-disk-drive-network-tlsx509-vxhs.args | 30 + ...emuxml2argv-disk-drive-network-tlsx509-vxhs.xml | 32 + .../qemuxml2argv-disk-drive-network-vxhs.args | 27 + .../qemuxml2argv-disk-drive-network-vxhs.xml | 32 + tests/qemuxml2argvtest.c | 8 + ...uxml2xmlout-disk-drive-network-tlsx509-vxhs.xml | 34 + .../qemuxml2xmlout-disk-drive-network-vxhs.xml | 34 + tests/qemuxml2xmltest.c | 2 + tests/virstoragetest.c | 23 + 36 files changed, 19766 insertions(+), 12 deletions(-) create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-tlsx509-vxhs.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-vxhs.xml -- 2.9.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list