JSON input / output for CLI utilities
Martin Schwenke
martin at meltin.net
Sat May 29 10:31:08 UTC 2021
On Sat, 29 May 2021 06:23:10 -0400, Andrew Walker
<awalker at ixsystems.com> wrote:
> On Sat, May 29, 2021 at 5:55 AM Martin Schwenke <martin at meltin.net> wrote:
>
> > Hi Andrew,
> >
> > On Thu, 27 May 2021 17:42:20 -0400, Andrew Walker via samba-technical
> > <samba-technical at lists.samba.org> wrote:
> >
> > > I know we've added JSON output to a few of the CLI utils. Over the past
> > > year or so I've added this to various utils in FreeNAS (using
> > libjansson).
> > > Is there an overall strategy for this? I'd be happy to upstream what I
> > have.
> >
> > Sounds good!
> >
> > > Also is there an effort to add support for JSON input to them?
> >
> > Your effort appears to be it! Thanks for that! :-)
> >
> > One wishlist item to think about... and my example is for CTDB... :-)
> >
> > If adding JSON output and, perhaps, input it would cool to have the
> > command-line tools be able to run in a mode where they stay connected
> > to the relevant Unix domain socket. The most useful example would
> > allow "ctdb statistics" to be repeatedly run within the one session, so
> > a reporting tool can periodically collect the output without the need
> > to reconnect.
> >
> > This could go hand-in-hand with addition of an interactive mode on
> > tools that don't have one (e.g. "ctdb").
> >
> > If this is an interesting idea then I'm happy to try to work on that
> > with you in whatever time I have available...
> >
> > peace & happiness,
> > martin
> >
>
> Yeah, I have some added for most of the ctdb commands.
>
> truenas# ctdb -j status | jq
> {
> "nodemap": {
> "node_count": 2,
> "deleted_node_count": 1,
> "nodes": [
> {
> "pnn": 0,
> "address": "192.168.122.176",
> "flags_str": "OK",
> "flags_raw": 0,
> "partially_online": false,
> "this_node": true
> }
> ]
> },
> "generation": 1598490685,
> "size": 1,
> "vnnmap": [
> {
> "hash": 0,
> "lmaster": 0
> }
> ],
> "recovery_mode_raw": 0,
> "recovery_mode_str": "NORMAL"
> }
Looks good!
> This one will take a little more time since in the patchset I duplicated
> many functions from /lib/audit_logging to separate library
> "/lib/json_minimal" to have some minimal set of JSON-related functions to
> make bolting-on JSON support somewhat simpler.
No hurry... :-)
peace & happiness,
martin
More information about the samba-technical
mailing list