On Wed, Aug 02, 2023 at 08:50:35PM -0500, Eric Blake wrote:
> 'nbdinfo --has structured-reply' reads a bit more naturally than
> 'nbdinfo --can structured-reply'.  Even though the latter mirrors the
> API name, it is not hard to add another alias to make our command-line
> usage easier.
> 
> Suggested-by: Richard W.M. Jones <rjo...@redhat.com>
> Signed-off-by: Eric Blake <ebl...@redhat.com>

Reviewed-by: Richard W.M. Jones <rjo...@redhat.com>

No reason I can see to delay pushing this patch upstream right away.

Rich.

> ---
> 
> v4: new patch
> ---
>  info/nbdinfo.pod | 29 +++++++++++++++++++----------
>  info/can.c       |  2 +-
>  info/info-can.sh |  6 +++---
>  info/main.c      |  4 +++-
>  4 files changed, 26 insertions(+), 15 deletions(-)
> 
> diff --git a/info/nbdinfo.pod b/info/nbdinfo.pod
> index 7eb3c1a0..72193c24 100644
> --- a/info/nbdinfo.pod
> +++ b/info/nbdinfo.pod
> @@ -160,9 +160,9 @@ Test if we can connect to the NBD URI.
> 
>  Test if the NBD URI connection is using TLS.
> 
> -=item nbdinfo --can structured-reply URI
> +=item nbdinfo --has structured-reply URI
> 
> -Test if server can respond with structured replies (a prerequisite
> +Test if server has support for structured replies (a prerequisite
>  for supporting block status commands).
> 
>  =item nbdinfo --is rotational URI
> @@ -322,26 +322,23 @@ Display brief command line help and exit.
> 
>  =item B<--can read>
> 
> -=item B<--can structured-reply>
> -
>  =item B<--can trim>
> 
>  =item B<--can write>
> 
>  =item B<--can zero>
> 
> -Test properties of the NBD server export or the connection itself.
> -The command does not print anything.  Instead it exits with success
> -(S<exit code 0>) if true, or failure (S<exit code 2>) if false.
> -(Other exit codes indicate an error querying the flag).
> +Test properties of the NBD server export.  The command does not print
> +anything.  Instead it exits with success (S<exit code 0>) if true, or
> +failure (S<exit code 2>) if false.  (Other exit codes indicate an
> +error querying the flag).
> 
>  For further information see the L<NBD
>  protocol|https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md>
>  and the following libnbd functions: L<nbd_can_cache(3)>,
>  L<nbd_can_df(3)>, L<nbd_can_fast_zero(3)>, L<nbd_can_flush(3)>,
>  L<nbd_can_fua(3)>, L<nbd_can_multi_conn(3)>, L<nbd_can_trim(3)>,
> -L<nbd_can_zero(3)>, L<nbd_is_read_only(3)>,
> -L<nbd_get_structured_replies_negotiated(3)>.
> +L<nbd_can_zero(3)>, L<nbd_is_read_only(3)>.
> 
>  =item B<--color>
> 
> @@ -370,6 +367,18 @@ When using I<--list>, the default is I<--no-content> 
> (since
>  downloading from each export is expensive).  To enable content probing
>  use I<--list --content>.
> 
> +=item B<--has structured-reply>
> +
> +Test properties of the NBD server connection.  The command does not
> +print anything.  Instead it exits with success (S<exit code 0>) if
> +true, or failure (S<exit code 2>) if false.  (Other exit codes
> +indicate an error querying the flag).
> +
> +For further information see the L<NBD
> +protocol|https://github.com/NetworkBlockDevice/nbd/blob/master/doc/proto.md>
> +and the following libnbd functions:
> +L<nbd_get_structured_replies_negotiated(3)>.
> +
>  =item B<--is read-only>
> 
>  =item B<--is rotational>
> diff --git a/info/can.c b/info/can.c
> index 01ab4806..8514fd5a 100644
> --- a/info/can.c
> +++ b/info/can.c
> @@ -92,7 +92,7 @@ do_can (void)
>      feature = nbd_can_zero (nbd);
> 
>    else {
> -    fprintf (stderr, "%s: unknown --can or --is option: %s\n",
> +    fprintf (stderr, "%s: unknown --can/--is/--has option: %s\n",
>               progname, can);
>      exit (EXIT_FAILURE);
>    }
> diff --git a/info/info-can.sh b/info/info-can.sh
> index 6cc8cbf4..13ef1032 100755
> --- a/info/info-can.sh
> +++ b/info/info-can.sh
> @@ -38,11 +38,11 @@ requires bash -c "nbdkit sh --dump-plugin | grep 
> has_can_cache=1"
>  # and oldstyle never, but that feels like depending a bit too much on
>  # the implementation.
> 
> -# --can structured-reply is not a per-export setting, but rather
> +# --has structured-reply is not a per-export setting, but rather
>  # something set on the server as a whole.
> 
>  nbdkit -v -U - sh - \
> -       --run '$VG nbdinfo --can structured-reply 
> "nbd+unix:///?socket=$unixsocket"' <<'EOF'
> +       --run '$VG nbdinfo --has structured-reply 
> "nbd+unix:///?socket=$unixsocket"' <<'EOF'
>  case "$1" in
>    get_size) echo 1024 ;;
>    pread) ;;
> @@ -52,7 +52,7 @@ EOF
> 
>  st=0
>  nbdkit -v -U - --no-sr sh - \
> -       --run '$VG nbdinfo --can structured-reply 
> "nbd+unix:///?socket=$unixsocket"' <<'EOF' || st=$?
> +       --run '$VG nbdinfo --has structured-reply 
> "nbd+unix:///?socket=$unixsocket"' <<'EOF' || st=$?
>  case "$1" in
>    get_size) echo 1024 ;;
>    pread) ;;
> diff --git a/info/main.c b/info/main.c
> index c6b3fca0..dbcc5a14 100644
> --- a/info/main.c
> +++ b/info/main.c
> @@ -119,6 +119,8 @@ main (int argc, char *argv[])
>      { "no-colours",         no_argument,       NULL, NO_COLOUR_OPTION },
>      { "content",            no_argument,       NULL, CONTENT_OPTION },
>      { "no-content",         no_argument,       NULL, NO_CONTENT_OPTION },
> +    { "has",                required_argument, NULL, CAN_OPTION },
> +    { "have",               required_argument, NULL, CAN_OPTION },
>      { "is",                 required_argument, NULL, CAN_OPTION },
>      { "json",               no_argument,       NULL, JSON_OPTION },
>      { "list",               no_argument,       NULL, 'L' },
> @@ -296,7 +298,7 @@ main (int argc, char *argv[])
> 
>    if (size_only)                /* --size (!list_all) */
>      do_size ();
> -  else if (can)                 /* --is/--can (!list_all) */
> +  else if (can)                 /* --is/--can/--has (!list_all) */
>      do_can ();
>    else if (map)                 /* --map (!list_all) */
>      do_map ();
> -- 
> 2.41.0

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to