Right now, 'query-block' has no way to filter to a single device, but
conversely, for each device, it shows only the first backing file,
rather than the entire backing chain.  Jeff and I were lamenting this
fact on IRC while debugging his block-commit stuff.

Would it be worth enhancing the QMP to be:

##
# @query-block:
#
# Get a list of BlockInfo for various virtual block devices.
#
# @devices: #optional If provided, limit the output to the given
#           device names (since 1.3)
#
# @recurse: #optional Provide recursive information on any backing
#           chains (since 1.3, default false)
#
# Returns: a list of @BlockInfo describing each virtual block device
#
# Since: 0.14.0
##
{ 'command': 'query-block',
  'arguments': { '*names': ['str'], 'recurse': 'bool' },
  'returns': ['BlockInfo'] }

as well as enhancing BlockDeviceInfo to be self-recursive, by adding
backing_chain as in:

# @backing_chain: #optional, only present if @backing_file is present
and 'query-block' requested recursion (since 1.3)

{ 'type': 'BlockDeviceInfo',
  'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
            '*backing_file': 'str', 'backing_file_depth': 'int',
            '*backing_chain' : 'BlockDeviceInfo',
            'encrypted': 'bool', 'encryption_key_missing': 'bool',
            'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int'} }

Or would such modifications require the creation of a new QMP command,
instead of altering 'query-block'?

Likewise, can 'qemu-img info' be enhanced to add a recursion flag?

-- 
Eric Blake   ebl...@redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to