On Nov 19, 2014, at 11:42 AM, Yacine Kheddache <yacine.khedda...@alyseo.com> 
wrote:

> On Wed, Nov 19, 2014 at 8:23 PM, Richard Elling 
> <richard.ell...@richardelling.com> wrote:
> 
> On Nov 19, 2014, at 10:33 AM, Matthew Ahrens <mahr...@delphix.com> wrote:
> 
>> 
>> 
>> On Wed, Nov 19, 2014 at 10:08 AM, Joshua M. Clulow <j...@sysmgr.org> wrote:
>> On 18 November 2014 13:55, Matthew Ahrens <mahr...@delphix.com> wrote:
>> >> This seems a reasonable structure to me, except that I would make the
>> >> keys precisely the same string (case included) as what would be
>> >> specified in the "-o" arguments, rather than using the value that
>> >> would display in the headings for human readable output.
>> > And rather than using the standard property name (e.g. "referenced")?  This
>> > seems less standardized to me, but I guess parroting back the way they
>> > specified it (e.g. "RefeR") should be workable as well.
>> 
>> Sorry, I meant to convey that it should be both spelt the same, and in
>> the same (i.e. lower) case, as it is in the input to the "-o" option.
>> I was reasonably sure that the "-o" option did not accept mixed- or
>> title-case strings and do "the right thing" with them.
>> 
>> 
>> Ah, right, sorry about that.  So it's just giving them back the column 
>> header vs the standard name.  i.e. if I do "zfs list -J -o refer" then the 
>> output will call the property "refer", and if I do "zfs list -J -o 
>> referenced", then the output will call the property "referenced".
> 
> Already the case in our implementation, see example in previous reply from 
> Francois :
> 
> # zfs list -J -o name,used,refer | python -m json.tool
> {
>     "cmd": "zfs list -J -o name,used,refer",
>     "stdout": [
>         {
>             "name": "tank_mirror",
>             "referenced": "19K",
>             "used": "55K"
>         },
>         {
>             "name": "tank_strip",
>             "referenced": "19K",
>             "used": "56,5K"
>         }
>     ]
> }
> 
> So good for all ?
>> 
>> In my opinion, for programmatic use (e.g. -J), the standard (full) property 
>> name should always be used ("referenced", not "refer"), and the output 
>> should always be in parseable format ("12345", not "12.0K").
> 
> agree
>  -- richard
> 
> I really do not understand why you guys would like to change this (I mean 
> between standard output and json output) ?
> Cause today everybody is parsing standard output which mean you are already 
> using "-p" arg to display used info in bytes... correct ?

Speaking for myself (and Coraid)
No. We're using what is effectively a replacement for the zfs command that also 
does
nvlist -> JSON. Once you're in JSON, it isn't human readable, so we have no 
need or desire
for pretty printing inside the JSON. Since the pretty printing is not 
consistent wrt MB/MiB doing
so can only cause problems.

> 
> So why you can not simply use "-p" with "-J" instead of creating (which is my 
> main point here in fact) a diff between standard output 
> and json output ? In addition is also mean with your suggestion that when 
> using "-J" no one can use the human readable output anymore if they want... 

Correct, the JSON is consumed by automation, not humans (unless you consider 
developers human :-)
 -- richard

> 
> Example again based on our current implementation :
> > zfs list -pJ -s used -o used | python -m  json.tool
> {
>     "cmd": "zfs list",
>     "stdout": [
>         {
>             "used": "56320"
>         },
>         {
>             "used": "57856"
>         }
>     ]
> } 
> 
> Regards,
> Yacine

_______________________________________________
developer mailing list
developer@open-zfs.org
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to