qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/4] block: Allow JSON filenames


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH 3/4] block: Allow JSON filenames
Date: Wed, 7 May 2014 10:39:58 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Am 06.05.2014 um 21:57 hat Eric Blake geschrieben:
> On 05/06/2014 01:30 PM, Max Reitz wrote:
> > If the filename given to bdrv_open() is prefixed with "json:", parse the
> > rest as a JSON object and use the result as the options QDict.
> > 
> > Signed-off-by: Max Reitz <address@hidden>
> > ---
> >  block.c | 41 +++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 41 insertions(+)
> > 
> 
> >  /*
> >   * Opens a disk image (raw, qcow2, vmdk, ...)
> >   *
> > @@ -1337,6 +1364,20 @@ int bdrv_open(BlockDriverState **pbs, const char 
> > *filename,
> >          options = qdict_new();
> >      }
> >  
> > +    if (filename && g_str_has_prefix(filename, "json:")) {
> > +        QDict *json_options = parse_json_filename(filename, &local_err);
> > +        if (local_err) {
> > +            ret = -EINVAL;
> > +            goto fail;
> > +        }
> > +
> > +        qdict_join(options, json_options, true);
> > +        assert(qdict_size(json_options) == 0);
> 
> Would it be better to pass false to qdict_join(), and then raise an
> error if the user specified conflicting options?  For example (untested,
> just typing off the top of my head here),
> 
> -drive
> file='json:{"driver":"qcow2","file.filename":"foo","backing.file.driver":"raw"}',backing.file.driver=qcow2
> 
> looks like it specifies conflicting backing.file.driver options.
> Passing true means that qdict_join silently overwrites the value in
> options to instead be the value in the json string; passing false means
> you could flag the user error.

Isn't the more realistic case, that 'file' is actually the backing file
string stored in an image, and the overwriting option comes from the
command line? In this case, I think we want to allow overriding the
option stored in the qcow2 file.

Kevin

Attachment: pgpNTR5r4LfCK.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]