All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: "Daniel P. Berrange" <berrange@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 7/7] qemu-img: allow specifying image as a set of options args
Date: Tue, 22 Dec 2015 10:50:19 -0700	[thread overview]
Message-ID: <56798D5B.4040800@redhat.com> (raw)
In-Reply-To: <20151222174159.GM10082@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2967 bytes --]

On 12/22/2015 10:42 AM, Daniel P. Berrange wrote:

>> Overall, I'm left wondering whether requiring '--source FOO' vs.
>> positional 'FOO', and manually enforcing mutual exclusion between the
>> two, is necessary, or if we could stick with positional.  But I guess
>> the main argument is backwards-compatibility: previously, using
>> 'driver=file,file=/path/to/file' as a filename would try to look in a
>> relative directory 'driver=file,file=', whereas your proposal of always
>> using the new '--source' option would make it obvious that we are
>> expecting to parse a QemuOpts string rather than defaulting to a literal
>> file name.
>>
>> On the other hand, the existing positional parameters have allowed
>> 'file:file:with_weird_name' to explicitly specify that we want to use
>> './file:with_weird_name' as a relative file in the current directory
>> (that is, the first 'file:' prefix is sufficient to avoid any
>> back-compat issues with any other possible change in interpretation to a
>> prefix), so on that grounds, I'd argue that adding --source is not
>> necessary, and we can just require users to write
>> 'file:$string_that_might_now_be_QemuOpts' anywhere they used to use
>> '$string_that_might_now_be_QemuOpts'.

I guess there's also the issue of literal commas.

Right now, we have:
$ echo hi > a,b
$ qemu-img info a,b
image: a,b
file format: raw
virtual size: 512 (512 bytes)
disk size: 4.0K
$ qemu-img info file:a,b
image: a,b
file format: raw
virtual size: 512 (512 bytes)
disk size: 4.0K

If we magically change things to interpret the positionals as QemuOpts
strings, we'd have a change that:

$ qemu-img info a,b
$ qemu-img info file:a,b

would error out ('a' and 'file:a' are not a known options, and we are
expecting =), but at the same time:

$ qemu-img info a,,b
$ qemu-img info file:a,,b

would start working (because the use of ',,' is the QemuOpts way to
escape a literal ',' that is not separating options packed into the
single argument).

>>
>> Maybe other block developers have an opinion to offer on whether the
>> last three patches in this series should be adding a new --source option
>> as mutually exclusive with positional args, vs. just adding a new
>> interpretation of the existing mandatory positional arguments?
> 
> Yep, back compatibility to avoid breaking any existing possible
> filenames was my main motivation for adding '--source'. I agree
> it would be nice if we decided that the risk was acceptable
> based on what you say above, and thus avoid --source, and just
> extend existing positional args.
> 
> If block maintainers OK that approach, I'd happily rewrite the
> last 3 patches in this series in that manner.

It may be mid-January before the decision is made, but we've got time
before 2.6 soft freeze.  I can wait :)

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


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

  reply	other threads:[~2015-12-22 17:50 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-22 11:06 [Qemu-devel] [PATCH 0/7] Make qemu-img/qemu-nbd/qemu-io CLI more flexible Daniel P. Berrange
2015-12-22 11:06 ` [Qemu-devel] [PATCH 1/7] qom: add user_creatable_add & user_creatable_del methods Daniel P. Berrange
2015-12-22 16:01   ` Eric Blake
2015-12-22 11:06 ` [Qemu-devel] [PATCH 2/7] qemu-img: add support for --object command line arg Daniel P. Berrange
2015-12-22 16:24   ` Eric Blake
2015-12-22 17:21     ` Daniel P. Berrange
2015-12-22 11:06 ` [Qemu-devel] [PATCH 3/7] qemu-nbd: " Daniel P. Berrange
2015-12-22 16:49   ` Eric Blake
2015-12-22 11:06 ` [Qemu-devel] [PATCH 4/7] qemu-io: " Daniel P. Berrange
2015-12-22 16:55   ` Eric Blake
2015-12-22 17:24     ` Daniel P. Berrange
2015-12-23 18:02       ` Paolo Bonzini
2015-12-23 19:25         ` Daniel P. Berrange
2015-12-22 11:06 ` [Qemu-devel] [PATCH 5/7] qemu-io: allow specifying image as a set of options args Daniel P. Berrange
2015-12-22 17:06   ` Eric Blake
2015-12-22 17:13     ` Daniel P. Berrange
2015-12-22 11:06 ` [Qemu-devel] [PATCH 6/7] qemu-nbd: " Daniel P. Berrange
2015-12-22 17:10   ` Eric Blake
2015-12-22 11:06 ` [Qemu-devel] [PATCH 7/7] qemu-img: " Daniel P. Berrange
2015-12-22 17:33   ` Eric Blake
2015-12-22 17:42     ` Daniel P. Berrange
2015-12-22 17:50       ` Eric Blake [this message]
2015-12-22 18:07         ` Daniel P. Berrange
2015-12-22 18:10           ` Eric Blake
2015-12-23 16:55             ` Daniel P. Berrange
2015-12-23 18:03               ` Paolo Bonzini
2015-12-23 19:23                 ` Daniel P. Berrange
2015-12-23 20:20                   ` Paolo Bonzini
2015-12-24 10:04                     ` Daniel P. Berrange

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=56798D5B.4040800@redhat.com \
    --to=eblake@redhat.com \
    --cc=afaerber@suse.de \
    --cc=armbru@redhat.com \
    --cc=berrange@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.