[Top][All Lists]

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

Re: [Qemu-block] [PATCH v5 05/10] qemu-io: allow specifying image as a s

From: Eric Blake
Subject: Re: [Qemu-block] [PATCH v5 05/10] qemu-io: allow specifying image as a set of options args
Date: Wed, 3 Feb 2016 08:37:15 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0

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
>  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=,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 <address@hidden>
> ---
>  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().

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().

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

Attachment: signature.asc
Description: OpenPGP digital signature

reply via email to

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