qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 07/10] qemu-img: allow specifying image as a


From: Daniel P. Berrange
Subject: Re: [Qemu-devel] [PATCH v5 07/10] qemu-img: allow specifying image as a set of options args
Date: Thu, 4 Feb 2016 15:47:30 +0000
User-agent: Mutt/1.5.24 (2015-08-30)

On Thu, Feb 04, 2016 at 04:42:06PM +0100, Kevin Wolf wrote:
> Am 02.02.2016 um 13:57 hat Daniel P. Berrange geschrieben:
> > Currently qemu-img allows an image filename to be passed on the
> > command line, but unless using the JSON format, it does not have
> > a way to set any options except the format eg
> > 
> >    qemu-img info https://127.0.0.1/images/centos7.iso
> > 
> > This adds a --image-opts arg that indicates that the positional
> > filename should be interpreted as a full option string, not
> > just a filename.
> > 
> >    qemu-img info --image-opts 
> > driver=https,url=https://127.0.0.1/images,sslverify=off
> > 
> > This flag is mutually exclusive with the '-f' / '-F' flags.
> > 
> > Signed-off-by: Daniel P. Berrange <address@hidden>
> 
> > @@ -212,9 +222,31 @@ static int print_block_option_help(const char 
> > *filename, const char *fmt)
> >      return 0;
> >  }
> >  
> > -static BlockBackend *img_open(const char *id, const char *filename,
> > -                              const char *fmt, int flags,
> > -                              bool require_io, bool quiet)
> > +static BlockBackend *img_open_opts(const char *id,
> > +                                   QemuOpts *opts, int flags)
> > +{
> > +    QDict *options;
> > +    Error *local_err = NULL;
> > +    char *file = NULL;
> > +    BlockBackend *blk;
> > +    file = g_strdup(qemu_opt_get(opts, "file"));
> > +    qemu_opt_unset(opts, "file");
> 
> Didn't we decide that we don't want to special-case "file"?

Yes, sorry I screwed this up when I refactored it.


> > +static BlockBackend *img_open(const char *id,
> > +                              bool image_opts,
> > +                              const char *filename,
> > +                              const char *fmt, int flags,
> > +                              bool require_io, bool quiet)
> > +{
> > +    BlockBackend *blk;
> > +    if (image_opts) {
> > +        QemuOpts *opts;
> > +        if (fmt) {
> > +            error_report("--image-opts and --format are mutually 
> > exclusive");
> > +            return NULL;
> > +        }
> > +        opts = qemu_opts_parse_noisily(qemu_find_opts("source"),
> > +                                       filename, true);
> > +        if (!opts) {
> > +            return NULL;
> > +        }
> > +        blk = img_open_opts("image", opts, flags);
> > +    } else {
> > +        blk = img_open_file("image", filename, fmt, flags, true, quiet);
> > +    }
> > +    return blk;
> > +}
> 
> I think id should be passed on instead of being replaced by "image".

ok
 
> > @@ -1956,7 +2034,13 @@ static int img_convert(int argc, char **argv)
> >          goto out;
> >      }
> >  
> > -    out_blk = img_open("target", out_filename, out_fmt, flags, true, 
> > quiet);
> > +    /* XXX we should allow --image-opts to trigger use of
> > +     * img_open() here, but then we have trouble with
> > +     * the bdrv_create() call which takes different params.
> > +     * Not critical right now, so fix can wait...
> > +     */
> > +    out_blk = img_open_file("target", out_filename,
> > +                            out_fmt, flags, true, quiet);
> 
> So is the plan to add another option (like --target-image-opts) when
> this call is converted?

Well I was hoping --image-opts would affect both source and target,
but i guess if we ship it only affecting source, we can't extend
it to also affect target without back compat issues, so that might
force adding a --target-image-opts

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|



reply via email to

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