mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
Add JSON output support to channel programs
The changes piggyback JSON output support on top of channel programs (#6558). This way the JSON output support is targeted to scripting use cases and is easily maintainable since it really only touches one function (zfs_do_channel_program()). This patch ports Joyent's JSON nvlist library from illumos to enable easy JSON printing of channel program output nvlist. To keep the delta small I also took advantage of the fact that printing in zfs_do_channel_program() was almost always done before exiting the program. Reviewed by: Matt Ahrens <mahrens@delphix.com> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alek Pinchuk <apinchuk@datto.com> Closes #7281
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
.Nd executes ZFS channel programs
|
||||
.Sh SYNOPSIS
|
||||
.Cm "zfs program"
|
||||
.Op Fl n
|
||||
.Op Fl jn
|
||||
.Op Fl t Ar instruction-limit
|
||||
.Op Fl m Ar memory-limit
|
||||
.Ar pool
|
||||
@@ -46,6 +46,10 @@ will be run on
|
||||
and any attempts to access or modify other pools will cause an error.
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width "-t"
|
||||
.It Fl j
|
||||
Display channel program output in JSON format. When this flag is specified and
|
||||
standard output is empty - channel program encountered an error. The details of
|
||||
such an error will be printed to standard error in plain text.
|
||||
.It Fl n
|
||||
Executes a read-only channel program, which runs faster.
|
||||
The program cannot change on-disk state by calling functions from the
|
||||
|
||||
+6
-2
@@ -300,7 +300,7 @@
|
||||
.Ar snapshot Ar snapshot Ns | Ns Ar filesystem
|
||||
.Nm
|
||||
.Cm program
|
||||
.Op Fl n
|
||||
.Op Fl jn
|
||||
.Op Fl t Ar timeout
|
||||
.Op Fl m Ar memory_limit
|
||||
.Ar pool script
|
||||
@@ -4264,7 +4264,7 @@ Display the path's inode change time as the first column of output.
|
||||
.It Xo
|
||||
.Nm
|
||||
.Cm program
|
||||
.Op Fl n
|
||||
.Op Fl jn
|
||||
.Op Fl t Ar timeout
|
||||
.Op Fl m Ar memory_limit
|
||||
.Ar pool script
|
||||
@@ -4286,6 +4286,10 @@ For full documentation of the ZFS channel program interface, see the manual
|
||||
page for
|
||||
.Xr zfs-program 8 .
|
||||
.Bl -tag -width ""
|
||||
.It Fl j
|
||||
Display channel program output in JSON format. When this flag is specified and
|
||||
standard output is empty - channel program encountered an error. The details of
|
||||
such an error will be printed to standard error in plain text.
|
||||
.It Fl n
|
||||
Executes a read-only channel program, which runs faster.
|
||||
The program cannot change on-disk state by calling functions from
|
||||
|
||||
Reference in New Issue
Block a user