On 09/20/21 13:04, Richard W.M. Jones wrote: > For example: > > $ nbdkit null 1G --run 'nbdinfo "$uri"' > protocol: newstyle-fixed without TLS > export="": > export-size: 1073741824 (1G) > > If the value cannot be abbreviated then the output doesn't include the > part in parentheses: > > $ nbdkit null 1023 --run 'nbdinfo "$uri"' > protocol: newstyle-fixed without TLS > export="": > export-size: 1023 > > The human-readable output changes, but callers shouldn't be parsing it > (use --size and/or --json instead). > --- > info/nbdinfo.pod | 9 +++++---- > info/show.c | 13 +++++++++++-- > 2 files changed, 16 insertions(+), 6 deletions(-) > > diff --git a/info/nbdinfo.pod b/info/nbdinfo.pod > index fbd0ef20..f64fe213 100644 > --- a/info/nbdinfo.pod > +++ b/info/nbdinfo.pod > @@ -29,7 +29,7 @@ > L<https://github.com/NetworkBlockDevice/nbd/blob/master/doc/uri.md>): > $ nbdinfo nbd://localhost > protocol: newstyle-fixed without TLS > export="": > - export-size: 1048576 > + export-size: 1048576 (1M) > content: data > uri: nbd://localhost:10809/ > is_rotational: false > @@ -78,7 +78,8 @@ the I<--json> parameter: > "block_size_minimum": 1, > "block_size_preferred": 4096, > "block_size_maximum": 33554432, > - "export-size": 2125119488 > + "export-size": 2125119488, > + "export-size-str": "2075312K" > } > ] > } > @@ -222,11 +223,11 @@ For example: > $ nbdkit file dir=. --run 'nbdinfo --list "$uri"' > protocol: newstyle-fixed without TLS > export="Fedora-Workstation-Live-x86_64-29-1.2.iso": > - export-size: 1931476992 > + export-size: 1931476992 (1842M) > uri: nbd://localhost:10809/Fedora-Workstation-Live-x86_64-29-1.2.iso > [...] > export="debian-10.4.0-amd64-DVD-1.iso": > - export-size: 3955556352 > + export-size: 3955556352 (3862848K) > uri: nbd://localhost:10809/debian-10.4.0-amd64-DVD-1.iso > [...] > > diff --git a/info/show.c b/info/show.c > index 893178cb..ff241a83 100644 > --- a/info/show.c > +++ b/info/show.c > @@ -28,6 +28,7 @@ > > #include <libnbd.h> > > +#include "human-size.h" > #include "vector.h" > > #include "nbdinfo.h" > @@ -45,6 +46,8 @@ show_one_export (struct nbd_handle *nbd, const char *desc, > bool first, bool last) > { > int64_t i, size; > + char size_str[HUMAN_SIZE_LONGEST]; > + bool human_size_flag; > char *export_name = NULL; > char *export_desc = NULL; > char *content = NULL; > @@ -75,6 +78,8 @@ show_one_export (struct nbd_handle *nbd, const char *desc, > exit (EXIT_FAILURE); > } > > + human_size (size_str, size, &human_size_flag); > + > uri = nbd_get_uri (nbd); > > /* Prefer the server's version of the name, if available */ > @@ -116,7 +121,10 @@ show_one_export (struct nbd_handle *nbd, const char > *desc, > fprintf (fp, ":\n"); > if (desc && *desc) > fprintf (fp, "\tdescription: %s\n", desc); > - fprintf (fp, "\texport-size: %" PRIi64 "\n", size); > + if (human_size_flag) > + fprintf (fp, "\texport-size: %" PRIi64 " (%s)\n", size, size_str); > + else > + fprintf (fp, "\texport-size: %" PRIi64 "\n", size); > if (content) > fprintf (fp, "\tcontent: %s\n", content); > if (uri) > @@ -239,7 +247,8 @@ show_one_export (struct nbd_handle *nbd, const char *desc, > block_maximum); > > /* Put this one at the end because of the stupid comma thing in JSON. */ > - fprintf (fp, "\t\"export-size\": %" PRIi64 "\n", size); > + fprintf (fp, "\t\"export-size\": %" PRIi64 ",\n", size); > + fprintf (fp, "\t\"export-size-str\": \"%s\"\n", size_str); > > if (last) > fprintf (fp, "\t} ]\n"); >
Assuming "size" (of type int64_t) is never negative here: Acked-by: Laszlo Ersek <[email protected]> Thanks Laszlo _______________________________________________ Libguestfs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/libguestfs
