'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> --- 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 _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs