Currently, the configuration of blkdebug and blkverify is done through
the "filename" alone. There is now way of manually choosing blkdebug or
blkverify as a driver and using a normal image filename.

In the case of blkdebug, the filename starts with the protocol prefix,
follows up with the name of a configuration file and ends with the name
of the image file.

In the case of blkverify, the filename starts with the protocol prefix,
follows up with the raw reference image filename and ends with the name
of the image file.

This patch allows the configuration of both drivers completely through
command-line options. The driver has to be selected through the
file.driver option (or similar), the image filename has to be given as
the filename (obviously) and, depending on the driver, further options
have to be given to control the behavior.

In case of blkverify, the x-raw option specifies the name of the raw
reference image file.

In case of blkdebug, one may either set the config option to the
filename of a configuration file, or the contents of the configuration
file may be given directly on the command line (see description of patch
4 for an example).

v2:
 - Addressed Fam's comments:
    - Added patch 3
    - Fixed patch 4 and modified it to use the function introduced in
      patch 3
 - Removed unnecessary error_propagate() in patch 1 (affects patches 5
   and 6 as well)


Max Reitz (7):
  blkdebug: Use errp for read_config()
  blkdebug: Don't require sophisticated filename
  qdict: Add qdict_array_split()
  qemu-option: Add qemu_config_parse_qdict()
  blkdebug: Always call read_config()
  blkdebug: Use command-line in read_config()
  blkverify: Don't require protocol filename

 block/blkdebug.c           | 49 ++++++++++++++++--------
 block/blkverify.c          |  4 +-
 include/qapi/qmp/qdict.h   |  1 +
 include/qemu/config-file.h |  6 +++
 qobject/qdict.c            | 36 ++++++++++++++++++
 util/qemu-config.c         | 95 ++++++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 174 insertions(+), 17 deletions(-)

-- 
1.8.4.2


Reply via email to