JSON RPC get schema call multi-level traversal

I have a multi level YANG file with more than 2 level. I am using the get_schema() call (with level parameter -1). I need to traverse to the last level leaf in the schema JSON result. I am using the Schema object parser from the confd webui basic example set. I am not able to traverse to the last level. The getChildren() schema call works only for the 1st level of schema. Please help

Hi,

I am not sure how getChildren works but that’s just an example, not a production code.

You can use any other javascript client that supports JSON-RPC.

The get_schema call would work like this (2 levels):

curl --cookie ‘sessionid_8008=sesssjsgdeLldkzDdkUT+OppJg==;’ -X POST -H ‘Content-Type: application/json’ -d ‘{“jsonrpc”: “2.0”, “id”: 1, “method”: “get_schema”, “params”: {“th”: 1, “path”: “/config:chassis”, “levels”: 2}}’ http://127.0.0.1:8008/jsonrpc

{“jsonrpc”:“2.0”,“result”:{“meta”:{“namespace”:“http://tail-f.com/ns/example/config",“keypath”:"/config:chassis",“prefix”:“config”,“types”:{}},“data”:{“kind”:“container”,“name”:“chassis”,“qname”:“config:chassis”,“mandatory”:true,“access”:{“create”:false,“read”:true,“update”:true,“delete”:false,“execute”:false},“children”:[{“kind”:“list”,“name”:“slot”,“qname”:“config:slot”,“mandatory”:true,“key”:[“id”],“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“children”:[{“kind”:“key”,“name”:“id”,“qname”:“config:id”,“mandatory”:true,“access”:{“create”:false,“read”:true,“update”:true,“delete”:false,“execute”:false},“type”:{“name”:“uint64”,“primitive”:true}},{“kind”:“list”,“name”:“interface”,“qname”:“config:interface”,“mandatory”:true,“key”:[“name”],“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“children”:[{“kind”:“key”,“name”:“name”,“qname”:“config:name”,“mandatory”:true,“access”:{“create”:false,“read”:true,“update”:true,“delete”:false,“execute”:false},“type”:{“name”:“string”,“primitive”:true}},{“kind”:“leaf”,“name”:“ip”,“qname”:“config:ip”,“info”:{“string”:"A normal IPv4 address”},“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“type”:{“name”:“ipv4-address”,“primitive”:true}},{“kind”:“leaf”,“name”:“description”,“qname”:“config:description”,“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“type”:{“name”:“string”,“primitive”:true}},{“kind”:“leaf”,“name”:“tx”,“qname”:“config:tx”,“config”:false,“is_config_false_callpoint”:true,“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“type”:{“name”:“uint64”,“primitive”:true},“readonly”:true},{“kind”:“leaf”,“name”:“rx”,“qname”:“config:rx”,“config”:false,“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“type”:{“name”:“uint64”,“primitive”:true},“readonly”:true},{“kind”:“choice”,“name”:“logformat”,“cases”:[{“kind”:“case”,“name”:“syslog”,“children”:[{“kind”:“leaf”,“name”:“syslog”,“qname”:“config:syslog”,“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“type”:{“name”:“empty”,“primitive”:true}}]},{“kind”:“case”,“name”:“disk”,“children”:[{“kind”:“container”,“name”:“disk”,“qname”:“config:disk”,“mandatory”:true,“access”:{“create”:false,“read”:true,“update”:true,“delete”:false,“execute”:false},“children”:[{“kind”:“leaf”,“name”:“filename”,“qname”:“config:filename”,“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“type”:{“name”:“string”,“primitive”:true}},{“kind”:“leaf”,“name”:“maxSize”,“qname”:“config:maxSize”,“access”:{“create”:true,“read”:true,“update”:true,“delete”:true,“execute”:false},“type”:{“name”:“uint64”,“primitive”:true}}]}]}]},{“kind”:“action”,“name”:“self-ping”,“qname”:“config:self-ping”,“mandatory”:true,“access”:{“create”:false,“read”:false,“update”:false,“delete”:false,“execute”:true},“children”:[{“kind”:“leaf”,“name”:“data”,“qname”:“config:data”,“is_action_output”:true,“access”:{“create”:false,“read”:false,“update”:false,“delete”:false,“execute”:false},“type”:{“name”:“string”,“primitive”:true}},{“kind”:“leaf”,“name”:“packet”,“qname”:“config:packet”,“is_action_output”:true,“access”:{“create”:false,“read”:false,“update”:false,“delete”:false,“execute”:false},“type”:{“name”:“string”,“primitive”:true}},{“kind”:“leaf”,“name”:“time”,“qname”:“config:time”,“is_action_output”:true,“access”:{“create”:false,“read”:false,“update”:false,“delete”:false,“execute”:false},“type”:{“name”:“string”,“primitive”:true}}]}]}]}]}},“id”:1}