diff options
Diffstat (limited to 'tools/net/ynl/cli.py')
-rwxr-xr-x | tools/net/ynl/cli.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/tools/net/ynl/cli.py b/tools/net/ynl/cli.py index b8481f401376..5e2913a7f3e4 100755 --- a/tools/net/ynl/cli.py +++ b/tools/net/ynl/cli.py @@ -3,9 +3,13 @@ import argparse import json +import pathlib import pprint +import sys import time +import signal +sys.path.append(pathlib.Path(__file__).resolve().parent.as_posix()) from lib import YnlFamily, Netlink, NlError @@ -17,6 +21,8 @@ class YnlEncoder(json.JSONEncoder): return list(obj) return json.JSONEncoder.default(self, obj) +def handle_timeout(sig, frame): + exit(0) def main(): description = """ @@ -81,7 +87,8 @@ def main(): ynl.ntf_subscribe(args.ntf) if args.sleep: - time.sleep(args.sleep) + signal.signal(signal.SIGALRM, handle_timeout) + signal.alarm(args.sleep) if args.list_ops: for op_name, op in ynl.ops.items(): @@ -106,8 +113,8 @@ def main(): exit(1) if args.ntf: - ynl.check_ntf() - output(ynl.async_msg_queue) + for msg in ynl.check_ntf(): + output(msg) if __name__ == "__main__": |