qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 01/20] nbd: produce a better error if neither


From: Jeff Cody
Subject: Re: [Qemu-devel] [PATCH v2 01/20] nbd: produce a better error if neither host nor port is passed
Date: Fri, 14 Feb 2014 15:41:51 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Feb 14, 2014 at 11:54:34AM -0500, Jeff Cody wrote:
> On Tue, Feb 11, 2014 at 06:03:34PM +0100, Paolo Bonzini wrote:
> > Before:
> >     $ qemu-io-old
> >     qemu-io-old> open -r -o file.driver=nbd
> >     qemu-io-old: can't open device (null): Could not open image: Invalid 
> > argument
> >     $ ./qemu-io-old
> >     qemu-io-old> open -r -o file.driver=nbd,file.host=foo,file.path=bar
> >     path and host may not be used at the same time.
> >     qemu-io-old: can't open device (null): Could not open image: Invalid 
> > argument
> > 
> > After:
> >     $ ./qemu-io
> >     qemu-io> open -r -o file.driver=nbd
> >     one of path and host must be specified.
> >     qemu-io: can't open device (null): Could not open image: Invalid 
> > argument
> >     $ ./qemu-io
> >     qemu-io> open -r -o file.driver=nbd,file.host=foo,file.path=bar
> >     path and host may not be used at the same time.
> >     qemu-io: can't open device (null): Could not open image: Invalid 
> > argument
> >
> 
> This breaks test 051, which is parsing the error output.  Could you
> also update 051.out in this patch?  This should fix it:
> 
> 
> diff --git tests/qemu-iotests/051.out tests/qemu-iotests/051.out
> index 30e2dbd..7de1870 100644
> --- tests/qemu-iotests/051.out
> +++ tests/qemu-iotests/051.out
> @@ -231,7 +231,7 @@ Testing: -drive driver=file
>  QEMU_PROG: -drive driver=file: could not open disk image ide0-hd0: The 
> 'file' block driver requires a file name
>  
>  Testing: -drive driver=nbd
> -QEMU_PROG: -drive driver=nbd: could not open disk image ide0-hd0: Could not 
> open image: Invalid argument
> +QEMU_PROG: -drive driver=nbd: could not open disk image ide0-hd0: one of 
> path and host must be specified.
>  
>  Testing: -drive driver=raw
>  QEMU_PROG: -drive driver=raw: could not open disk image ide0-hd0: Can't use 
> 'raw' as a block driver for the protocol level
> @@ -240,7 +240,7 @@ Testing: -drive file.driver=file
>  QEMU_PROG: -drive file.driver=file: could not open disk image ide0-hd0: The 
> 'file' block driver requires a file name
>  
>  Testing: -drive file.driver=nbd
> -QEMU_PROG: -drive file.driver=nbd: could not open disk image ide0-hd0: Could 
> not open image: Invalid argument
> +QEMU_PROG: -drive file.driver=nbd: could not open disk image ide0-hd0: one 
> of path and host must be specified.
>  
>  Testing: -drive file.driver=raw
>  QEMU_PROG: -drive file.driver=raw: could not open disk image ide0-hd0: Can't 
> use 'raw' as a block driver for the protocol level
>

Sorry Paolo, the above would be if patches 1 and 2 were squashed together. 

This would be the diff for 051.out for just this patch:

diff --git a/tests/qemu-iotests/051.out b/tests/qemu-iotests/051.out
index 30e2dbd..3e8d962 100644
--- a/tests/qemu-iotests/051.out
+++ b/tests/qemu-iotests/051.out
@@ -231,6 +231,7 @@ Testing: -drive driver=file
 QEMU_PROG: -drive driver=file: could not open disk image ide0-hd0: The 'file' 
block driver requires a file name
 
 Testing: -drive driver=nbd
+QEMU_PROG: -drive driver=nbd: one of path and host must be specified.
 QEMU_PROG: -drive driver=nbd: could not open disk image ide0-hd0: Could not 
open image: Invalid argument
 
 Testing: -drive driver=raw
@@ -240,6 +241,7 @@ Testing: -drive file.driver=file
 QEMU_PROG: -drive file.driver=file: could not open disk image ide0-hd0: The 
'file' block driver requires a file name
 
 Testing: -drive file.driver=nbd
+QEMU_PROG: -drive file.driver=nbd: one of path and host must be specified.
 QEMU_PROG: -drive file.driver=nbd: could not open disk image ide0-hd0: Could 
not open image: Invalid argument
 
 Testing: -drive file.driver=raw


> 
> > Next patch will fix the error propagation.
> > 
> > Signed-off-by: Paolo Bonzini <address@hidden>
> > ---
> >  block/nbd.c | 13 ++++++-------
> >  1 file changed, 6 insertions(+), 7 deletions(-)
> > 
> > diff --git a/block/nbd.c b/block/nbd.c
> > index 327e913..fd89083 100644
> > --- a/block/nbd.c
> > +++ b/block/nbd.c
> > @@ -192,19 +192,18 @@ static int nbd_config(BDRVNBDState *s, QDict 
> > *options, char **export)
> >  {
> >      Error *local_err = NULL;
> >  
> > -    if (qdict_haskey(options, "path")) {
> > -        if (qdict_haskey(options, "host")) {
> > +    if (qdict_haskey(options, "path") == qdict_haskey(options, "host")) {
> > +        if (qdict_haskey(options, "path")) {
> >              qerror_report(ERROR_CLASS_GENERIC_ERROR, "path and host may 
> > not "
> >                            "be used at the same time.");
> > -            return -EINVAL;
> > +        } else {
> > +            qerror_report(ERROR_CLASS_GENERIC_ERROR, "one of path and host 
> > "
> > +                          "must be specified.");
> >          }
> > -        s->client.is_unix = true;
> > -    } else if (qdict_haskey(options, "host")) {
> > -        s->client.is_unix = false;
> > -    } else {
> >          return -EINVAL;
> >      }
> >  
> > +    s->client.is_unix = qdict_haskey(options, "path");
> >      s->socket_opts = qemu_opts_create(&socket_optslist, NULL, 0,
> >                                        &error_abort);
> >  
> > -- 
> > 1.8.5.3
> > 
> > 
> > 
> 



reply via email to

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