On Nov 18, 2014, at 10:18 AM, Matthew Ahrens <mahr...@delphix.com> wrote:

> 
> On Tue, Nov 18, 2014 at 8:00 AM, Francois Billard 
> <francois.bill...@alyseo.com> wrote:
> Matt,
> 
> In C you use a structure with predefined fields names, it would be difficult 
> to use it if names change every time ? 
> 
> Actually it would be easier to implement in C the way I described, because 
> then you won't have to realloc the array, you can just use do 
> nvlist_add_nvlist(dataset_name, nvlist_of_props).
> 
> But more importantly, I presume the JSON output will become a stable 
> interface.  Does anyone else have opinions on this?

yes. I'd like to start with an agreed-upon stable JSON schema. Likely this will 
be very similar to
the current nvlists. Having done this several times now, it really helps to get 
it right up front.

[now to find some extra time...]
 -- richard

> 
> --matt
> 
> In Python, it's technically possible to have variable as keys (interpreted 
> language), you can iterate over keys list of dictionnary to know name of keys 
> and after get the value (dict of properties), but it's not practical , you 
> must fetch name before getting properties every time.
> 
> Names must be preset to establish a rigid and well known structure of the 
> output of commands and also to ensure the uniqueness of keys in dictionaries.
> 
> We try also to respect the semantic of the commands output, in this case, the 
> command "zfs list" return a list of zfs mount point, each mount point is a 
> dictionary of properties (name, used, avail, ..). So the output should be 
> identic : a list of dict
> 
> 
> --francois
> 
> 2014-11-17 19:34 GMT+01:00 Matthew Ahrens <mahr...@delphix.com>:
> 
> 
> On Mon, Nov 17, 2014 at 10:22 AM, Francois Billard 
> <francois.bill...@alyseo.com> wrote:
> 2014-11-17 18:58 GMT+01:00 Matthew Ahrens <mahr...@delphix.com>:
> On Mon, Nov 17, 2014 at 9:39 AM, Goulven Riou <goulven.r...@alyseo.com> wrote:
>  
> Hi Matt,  
> thanks for your comments on the pull request 
> we have corrected the style error and applied your suggestions. 
>  
> Regarding the dataset name as a key, 
> the json are consumed by some code and we don't know in advance what key name 
>  
> that we will have, so list is preferable to iter over json structure,  
> 
> Is it not possible / convenient to iterate over the key/value pairs in a JSON 
> structure
> 
> Actually it s possible to iterate over key in a json dictionnary, but key 
> should stay a key and value a value :)
> 
> Yes, and at least in my mind, the dataset name is the key, and the value is 
> its list of properties.  I think you are saying that in the JSON world, the 
> key should never be a variable?  i.e. you always know what the key is 
> beforehand?
> 
> --matt
> 
>  
> , when your "zfs list -o name" display :
> 
> root@t0 # zfs list -o name,used,refer
> NAME                      USED   REFER
> rpool                         1.63G   404M
> rpool/ROOT              1.23G   144K
> rpool/ROOT/debian  1.23G   1.23G
> 
> the key are NAME, and value are "rpool', and so on
> 
> the json output :
> 
> "rpool" : {
>                  "USED" : "1.63G",
>                  "REFER" : "404M"
> }
> is not good json format (rpool is the value and you have to know the key to 
> get the structure which is not convenient -> you have to fetch key name in 
> advance)
> 
> the good format is  (what we have implemented):
> {
>                  "NAME" : "rpool",
>                  "USED" : "1.63G",
>                  "REFER" : "404M"
> }
> 
> if you want the structure of a specified pool, you must specify it in the 
> command as : 
> "zfs list <pool name>"
> 
> 
>  
> could you explain the use case where you need dataset as key name ? 
>  
> an other question about the -o option , did you want to block the -o option 
> with the -J option ? 
>  
> I thought the whole point was to use -J with -o.  Without -o, you will get 
> whatever the default properties are, which could conceivably change over time.
> 
> 
> it's already the case in our implementation.
>  
> --matt
>  
> best regards 
> Goulven
> 
> 
> Regards,
> Francois 
> 
> 
> 
> _______________________________________________
> developer mailing list
> developer@open-zfs.org
> http://lists.open-zfs.org/mailman/listinfo/developer

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

Reply via email to