Re: RFE: 'btrfs' tools machine readable output

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 16, 2016 at 01:14:56PM +0100, Richard W.M. Jones wrote:
> I don't have time to implement this right now, so I'm just posting
> this as a suggestion/request ...

Neither do have I, but agree with the idea and the proposed way. Here
are my notes
https://github.com/kdave/drafts/blob/master/btrfs/progs-output-format.txt

> It would be really helpful if the btrfs tools had a machine-readable
> output.
> 
> Libguestfs parses btrfs tools output in a number of places, eg:
> https://github.com/libguestfs/libguestfs/blob/master/daemon/btrfs.c
> This is a massive PITA because each time a new release of btrfs-progs
> comes along it changes the output slightly, and we end up having
> to add all sorts of hacks.

The error messages haven't been touched for a long time and they get
fixed or rephrased incrementally. I'm sorry you have to deal with the
breakage but please understand that we don't have resources to do it at
once or to implement complete machine readable output. At the moment the
messages are aimed for a human consumer.

Wiring the various formats into the codebase would be pretty intrusive,
but doable. We can do some commands first as a prototype, the 'fi show'
seems like a good candidate.

> With machine-readable output, there'd be a flag which would
> change the output.  eg:
> 
> $ btrfs filesystem show
> Label: 'ROOT'  uuid: af471cfc-421a-4d51-8811-ce969f76828a
>         Total devices 1 FS bytes used 5.29MiB
>         devid    1 size 767.97MiB used 92.00MiB path /dev/sda2
> 
> would become:
> 
> $ btrfs --json filesystem show
> {
>   "devices": {
>      "Label": "ROOT",
>      "uuid": "af471cfc-421a-4d51-8811-ce969f76828a",
>      /// etc
>   }
> }
> 
> By this example I don't mean that JSON has to be the format -- in fact
> it's a terrible format with all sorts of problems -- any format which
> is parseable with C libraries would do for us.

My ideas was to allow multiple formats, with slight change to the
syntax:

$ btrfs --format=json ...
$ btrfs --format=plain ...
$ btrfs --format=yaml ...
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux