Lines Matching +full:json +full:- +full:schema
2 # SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
5 import json
23 raise Exception(f"Schema directory {schema_dir} does not exist")
33 class YnlEncoder(json.JSONEncoder):
39 return json.JSONEncoder.default(self, obj)
44 YNL CLI utility - a general purpose netlink utility that uses YAML
48 The --multi option can be repeated to include several do operations
55 spec_group.add_argument('--family', dest='family', type=str,
57 spec_group.add_argument('--list-families', action='store_true',
59 spec_group.add_argument('--spec', dest='spec', type=str,
62 parser.add_argument('--schema', dest='schema', type=str)
63 parser.add_argument('--no-schema', action='store_true')
64 parser.add_argument('--json', dest='json_text', type=str)
67 group.add_argument('--do', dest='do', metavar='DO-OPERATION', type=str)
68 group.add_argument('--multi', dest='multi', nargs=2, action='append',
69 metavar=('DO-OPERATION', 'JSON_TEXT'), type=str)
70 group.add_argument('--dump', dest='dump', metavar='DUMP-OPERATION', type=str)
71 group.add_argument('--list-ops', action='store_true')
72 group.add_argument('--list-msgs', action='store_true')
74 parser.add_argument('--duration', dest='duration', type=int,
76 parser.add_argument('--sleep', dest='duration', type=int,
78 parser.add_argument('--subscribe', dest='ntf', type=str)
79 parser.add_argument('--replace', dest='flags', action='append_const',
81 parser.add_argument('--excl', dest='flags', action='append_const',
83 parser.add_argument('--create', dest='flags', action='append_const',
85 parser.add_argument('--append', dest='flags', action='append_const',
87 parser.add_argument('--process-unknown', action=argparse.BooleanOptionalAction)
88 parser.add_argument('--output-json', action='store_true')
89 parser.add_argument('--dbg-small-recv', default=0, const=4000,
95 print(json.dumps(msg, cls=YnlEncoder))
106 args.schema = ''
110 attrs = json.loads(args.json_text)
114 if args.schema is None and spec.startswith(sys_schema_dir):
115 args.schema = '' # disable schema validation when installed
121 ynl = YnlFamily(spec, args.schema, args.process_unknown,
144 ops = [ (item[0], json.loads(item[1]), args.flags or []) for item in args.multi ]