All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
	qemu-block@nongnu.org, qemu-devel@nongnu.org,
	"Markus Armbruster" <armbru@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Andreas Färber" <afaerber@suse.de>
Subject: Re: [Qemu-devel] [PATCH v5 05/10] qemu-io: allow specifying image as a set of options args
Date: Wed, 3 Feb 2016 17:13:03 +0000	[thread overview]
Message-ID: <20160203171303.GS30222@redhat.com> (raw)
In-Reply-To: <56B21EAB.1000308@redhat.com>

On Wed, Feb 03, 2016 at 08:37:15AM -0700, Eric Blake wrote:
> On 02/02/2016 05:57 AM, Daniel P. Berrange wrote:
> > Currently qemu-io 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-io https://127.0.0.1/images/centos7.iso
> >  qemu-io /home/berrange/demo.qcow2
> > 
> > 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-io --image-opts driver=https,url=https://127.0.0.1/images,sslverify=off
> >  qemu-io --image-opts driver=file,filename=/home/berrange/demo.qcow2
> > 
> > This flag is mutually exclusive with the '-f' flag.
> 
> I guess it's easier to enforce the mutual exclusion, than it is to try
> and figure out how to make -f work with the --image-opts filename as
> long as the two aren't specifying conflicting formats.  Seems okay as
> long as it is documented well.
> 
> > 
> > Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> > ---
> >  qemu-io.c | 31 ++++++++++++++++++++++++++++++-
> >  1 file changed, 30 insertions(+), 1 deletion(-)
> > 
> 
> > @@ -515,7 +531,20 @@ int main(int argc, char **argv)
> >          flags |= BDRV_O_RDWR;
> >      }
> >  
> > -    if ((argc - optind) == 1) {
> > +    if (imageOpts) {
> > +        QemuOpts *qopts;
> > +        qopts = qemu_opts_parse_noisily(&file_opts, argv[optind], false);
> 
> Ouch. If argc == optind (possible if I type 'qemu-io --image-opts'
> without a filename), then argv[optind] == NULL, and you end up calling
> strncmp(NULL, "id=", 3) inside opts_parse().

Yeah, I should not have removed the ((argc - optind) ==1) check here - it
should be the first thing checked, and imageOpts the second.

> Also, I noticed that running 'qemu-io' without arguments puts you into a
> shell mode, where you can then open files after the fact via the
> open_f() callback function (the 'open' command) - either that function
> should that function be given --image-opts support, or use of
> --image-opts from the command line should globally affect all subsequent
> use of open_f().

That function already has a --option / -o argument that has a similar
result, but I agree that if --image-opts is given on the cli we should
probably use that exclusively.


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	other threads:[~2016-02-03 17:13 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-02 12:57 [Qemu-devel] [PATCH v5 00/10] Make qemu-img/qemu-nbd/qemu-io CLI more flexible Daniel P. Berrange
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 01/10] qom: add helpers for UserCreatable object types Daniel P. Berrange
2016-02-02 14:47   ` Andreas Färber
2016-02-02 23:38   ` Eric Blake
2016-02-02 23:41     ` Andreas Färber
2016-02-03  0:15       ` Eric Blake
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 02/10] qemu-img: add support for --object command line arg Daniel P. Berrange
2016-02-03  0:24   ` Eric Blake
2016-02-03 10:09     ` Daniel P. Berrange
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 03/10] qemu-nbd: " Daniel P. Berrange
2016-02-03  2:33   ` Eric Blake
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 04/10] qemu-io: " Daniel P. Berrange
2016-02-03  2:42   ` Eric Blake
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 05/10] qemu-io: allow specifying image as a set of options args Daniel P. Berrange
2016-02-03 15:37   ` Eric Blake
2016-02-03 17:13     ` Daniel P. Berrange [this message]
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 06/10] qemu-nbd: " Daniel P. Berrange
2016-02-03 15:47   ` Eric Blake
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 07/10] qemu-img: " Daniel P. Berrange
2016-02-04 15:42   ` Kevin Wolf
2016-02-04 15:47     ` Daniel P. Berrange
2016-02-04 16:06       ` Kevin Wolf
2016-02-04 16:35         ` Daniel P. Berrange
2016-02-05 15:52           ` Kevin Wolf
2016-02-04 15:59   ` Eric Blake
2016-02-04 16:03     ` Daniel P. Berrange
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 08/10] qemu-nbd: don't overlap long option values with short options Daniel P. Berrange
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 09/10] qemu-nbd: use no_argument/required_argument constants Daniel P. Berrange
2016-02-02 12:57 ` [Qemu-devel] [PATCH v5 10/10] qemu-io: " Daniel P. Berrange
2016-02-04 15:44 ` [Qemu-devel] [PATCH v5 00/10] Make qemu-img/qemu-nbd/qemu-io CLI more flexible Kevin Wolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160203171303.GS30222@redhat.com \
    --to=berrange@redhat.com \
    --cc=afaerber@suse.de \
    --cc=armbru@redhat.com \
    --cc=eblake@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.