
On Fri, Sep 01, 2017 at 10:20:43AM +0200, Peter Krempa wrote:
On Thu, Aug 31, 2017 at 12:59:59 -0400, John Ferlan wrote:
On 08/31/2017 11:34 AM, Peter Krempa wrote:
[...]
@@ -1811,6 +1814,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsIntelIOMMU[] = { static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = { { "blockdev-add/arg-type/options/+gluster/debug-level", QEMU_CAPS_GLUSTER_DEBUG_LEVEL}, { "blockdev-add/arg-type/+gluster/debug", QEMU_CAPS_GLUSTER_DEBUG_LEVEL}, + { "blockdev-add/arg-type/+vxhs", QEMU_CAPS_VXHS},
I've just noticed that this is reported by qemu even if it isn't built with libvxhs, thus this is not a 100% proof that qemu in fact supports such volumes.
So with this you still might get a failure from qemu even if libvirt thinks that it's supported. For other storage protocols we don't really have capabilities. I'm not sure whether it's worth adding it. It will catch that your qemu is too old, but won't if it has the feature disabled.
Well it's essentially in reaction to your review from v4:
https://www.redhat.com/archives/libvir-list/2017-June/msg01389.html
so the reality is there's not way to tell at all. All we can do is "hope" that someone successfully built qemu w/ --enable-vxhs. As seen from qemu commit id 'da92c3ff6'.
Yep. I think it makes sense to keep it in the end.
Kind of makes introspection a bit useless seeing as I assume it's keyed off the qapi/block-core.json file and furthermore that it cannot be built based on whether or not --enable-vxhs was successful. Thus the only way to really know is to run and fail. Seems like a qemu problem to me ;-)! We tried at least.
I agree. We can keep this and I'll ask whether qemu can't do something about that.
I only want to make sure, that the capability stuff is not dragged into the json struct generator.
I take it the issue with introspection is that the BlockdevDriver enum in the QEMU QAPI includes all driver formats, regardless of whether they were enabled or not? If so, I guess this is an issue for other protocol formats (e.g. gluster) as well. Marc-André's "qapi: add 'if' condition on top-level schema elements" series for QEMU may provide a way to fix this, but of course that wouldn't be until at least QEMU 2.11. A bit hacky, but if needed in the interim, libvirt could parse 'qemu-img --help', in particular the "Supported formats:" line: With vxhs enabled: Supported formats: [...] sheepdog ssh vdi vhdx vmdk vpc vvfat vxhs Without vxhs enabled: Supported formats: [...] sheepdog ssh vdi vhdx vmdk vpc vvfat (as I said, a bit hacky...) -Jeff