Re: [Qemu-devel] [PATCH 02/27] block/qapi: Add qcow2 create options to schema
On 2018-02-08 20:23, Kevin Wolf wrote: > Signed-off-by: Kevin Wolf> --- > qapi/block-core.json | 45 - > 1 file changed, 44 insertions(+), 1 deletion(-) Reviewed-by: Max Reitz signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH 02/27] block/qapi: Add qcow2 create options to schema
On 02/08/2018 01:23 PM, Kevin Wolf wrote: Signed-off-by: Kevin Wolf--- qapi/block-core.json | 45 - 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index b59b1430bb..aade602a04 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -3338,6 +3338,49 @@ { 'command': 'blockdev-del', 'data': { 'node-name': 'str' } } ## +# @BlockdevQcow2Version: +# +# @v2: The original QCOW2 format as introduced in qemu 0.10 (version 2) +# @v3: The extended QCOW2 format as introduced in qemu 1.1 (version 3) +# +# Since: 2.12 +## +{ 'enum': 'BlockdevQcow2Version', + 'data': [ 'v2', 'v3' ] } Yes, I think that turns out nicer. + + +## +# @BlockdevCreateOptionsQcow2: +# +# Driver specific image creation options for qcow2. +# +# @file Node to create the image format on +# @size Size of the virtual disk in bytes +# @version Compatibility level (default: v3) +# @backing-file File name of the backing file if a backing file +# should be used Do we need an explicit comment that the QMP command does NOT open this file (so much as this being the string recorded in the metadata header), but that the caller is expected to later connect a node visiting the backing file to this node after the create has completed? Or is that more for adding later in the QMP command that uses the overall union type (as the same rule will apply to multiple formats, not just qcow2 - the create operation is NOT creating the backing chain, but just formatting one element that will later be hooked into the chain). +# @backing-fmt Name of the block driver to use for the backing file +# @encrypt Encryption options if the image should be encrypted +# @cluster-size qcow2 cluster size in bytes (default: 65536) +# @preallocationPreallocation mode for the new image (default: off) +# @lazy-refcounts True if refcounts may be updated lazily (default: off) +# @refcount-bitsWidth of reference counts in bits (default: 16) +# +# Since: 2.12 +## +{ 'struct': 'BlockdevCreateOptionsQcow2', + 'data': { 'file': 'BlockdevRef', +'size': 'size', +'*version': 'BlockdevQcow2Version', +'*backing-file':'str', +'*backing-fmt': 'BlockdevDriver', +'*encrypt': 'QCryptoBlockCreateOptions', +'*cluster-size':'size', +'*preallocation': 'PreallocMode', +'*lazy-refcounts': 'bool', +'*refcount-bits': 'int' } } Looks reasonable, and matches what qemu-img create -f qcow2 can do (the obvious differences of '-' in QMP instead of '_' in qemu-img -o spelling is fine). Reviewed-by: Eric Blake -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
[Qemu-devel] [PATCH 02/27] block/qapi: Add qcow2 create options to schema
Signed-off-by: Kevin Wolf--- qapi/block-core.json | 45 - 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index b59b1430bb..aade602a04 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -3338,6 +3338,49 @@ { 'command': 'blockdev-del', 'data': { 'node-name': 'str' } } ## +# @BlockdevQcow2Version: +# +# @v2: The original QCOW2 format as introduced in qemu 0.10 (version 2) +# @v3: The extended QCOW2 format as introduced in qemu 1.1 (version 3) +# +# Since: 2.12 +## +{ 'enum': 'BlockdevQcow2Version', + 'data': [ 'v2', 'v3' ] } + + +## +# @BlockdevCreateOptionsQcow2: +# +# Driver specific image creation options for qcow2. +# +# @file Node to create the image format on +# @size Size of the virtual disk in bytes +# @version Compatibility level (default: v3) +# @backing-file File name of the backing file if a backing file +# should be used +# @backing-fmt Name of the block driver to use for the backing file +# @encrypt Encryption options if the image should be encrypted +# @cluster-size qcow2 cluster size in bytes (default: 65536) +# @preallocationPreallocation mode for the new image (default: off) +# @lazy-refcounts True if refcounts may be updated lazily (default: off) +# @refcount-bitsWidth of reference counts in bits (default: 16) +# +# Since: 2.12 +## +{ 'struct': 'BlockdevCreateOptionsQcow2', + 'data': { 'file': 'BlockdevRef', +'size': 'size', +'*version': 'BlockdevQcow2Version', +'*backing-file':'str', +'*backing-fmt': 'BlockdevDriver', +'*encrypt': 'QCryptoBlockCreateOptions', +'*cluster-size':'size', +'*preallocation': 'PreallocMode', +'*lazy-refcounts': 'bool', +'*refcount-bits': 'int' } } + +## # @BlockdevCreateNotSupported: # # This is used for all drivers that don't support creating images. @@ -3380,7 +3423,7 @@ 'null-aio': 'BlockdevCreateNotSupported', 'null-co':'BlockdevCreateNotSupported', 'parallels': 'BlockdevCreateNotSupported', - 'qcow2': 'BlockdevCreateNotSupported', + 'qcow2': 'BlockdevCreateOptionsQcow2', 'qcow': 'BlockdevCreateNotSupported', 'qed':'BlockdevCreateNotSupported', 'quorum': 'BlockdevCreateNotSupported', -- 2.13.6