mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
When I wrote the first version of the Python code I was quite excited that we can generate class methods directly from the spec. Unfortunately we need to use valid identifiers for method names (specifically no dashes are allowed). Don't reuse those names on the CLI, it's much more natural to use the operation names exactly as listed in the spec. Instead of: ./cli --do rings_get use: ./cli --do rings-get Signed-off-by: Jakub Kicinski <kuba@kernel.org>
48 lines
1.2 KiB
Python
Executable file
48 lines
1.2 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
import argparse
|
|
import json
|
|
import pprint
|
|
import time
|
|
|
|
from lib import YnlFamily
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='YNL CLI sample')
|
|
parser.add_argument('--spec', dest='spec', type=str, required=True)
|
|
parser.add_argument('--schema', dest='schema', type=str)
|
|
parser.add_argument('--json', dest='json_text', type=str)
|
|
parser.add_argument('--do', dest='do', type=str)
|
|
parser.add_argument('--dump', dest='dump', type=str)
|
|
parser.add_argument('--sleep', dest='sleep', type=int)
|
|
parser.add_argument('--subscribe', dest='ntf', type=str)
|
|
args = parser.parse_args()
|
|
|
|
attrs = {}
|
|
if args.json_text:
|
|
attrs = json.loads(args.json_text)
|
|
|
|
ynl = YnlFamily(args.spec, args.schema)
|
|
|
|
if args.ntf:
|
|
ynl.ntf_subscribe(args.ntf)
|
|
|
|
if args.sleep:
|
|
time.sleep(args.sleep)
|
|
|
|
if args.do:
|
|
reply = ynl.do(args.do, attrs)
|
|
pprint.PrettyPrinter().pprint(reply)
|
|
if args.dump:
|
|
reply = ynl.dump(args.dump, attrs)
|
|
pprint.PrettyPrinter().pprint(reply)
|
|
|
|
if args.ntf:
|
|
ynl.check_ntf()
|
|
pprint.PrettyPrinter().pprint(ynl.async_msg_queue)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|