mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-09 19:39:56 +00:00
tools/net/ynl: Report netlink errors without stacktrace
ynl does not handle NlError exceptions so they get reported like program
failures. Handle the NlError exceptions and report the netlink errors
more cleanly.
Example now:
Netlink error: No such file or directory
nl_len = 44 (28) nl_flags = 0x300 nl_type = 2
error: -2 extack: {'bad-attr': '.op'}
Example before:
Traceback (most recent call last):
File "/home/donaldh/net-next/./tools/net/ynl/cli.py", line 81, in <module>
main()
File "/home/donaldh/net-next/./tools/net/ynl/cli.py", line 69, in main
reply = ynl.dump(args.dump, attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/donaldh/net-next/tools/net/ynl/lib/ynl.py", line 906, in dump
return self._op(method, vals, [], dump=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/donaldh/net-next/tools/net/ynl/lib/ynl.py", line 872, in _op
raise NlError(nl_msg)
lib.ynl.NlError: Netlink error: No such file or directory
nl_len = 44 (28) nl_flags = 0x300 nl_type = 2
error: -2 extack: {'bad-attr': '.op'}
Signed-off-by: Donald Hunter <donald.hunter@gmail.com>
Link: https://lore.kernel.org/r/20240306231046.97158-3-donald.hunter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
cecbc52c46
commit
771b7012e5
@@ -6,7 +6,7 @@ import json
|
||||
import pprint
|
||||
import time
|
||||
|
||||
from lib import YnlFamily, Netlink
|
||||
from lib import YnlFamily, Netlink, NlError
|
||||
|
||||
|
||||
class YnlEncoder(json.JSONEncoder):
|
||||
@@ -66,12 +66,16 @@ def main():
|
||||
if args.sleep:
|
||||
time.sleep(args.sleep)
|
||||
|
||||
if args.do:
|
||||
reply = ynl.do(args.do, attrs, args.flags)
|
||||
output(reply)
|
||||
if args.dump:
|
||||
reply = ynl.dump(args.dump, attrs)
|
||||
output(reply)
|
||||
try:
|
||||
if args.do:
|
||||
reply = ynl.do(args.do, attrs, args.flags)
|
||||
output(reply)
|
||||
if args.dump:
|
||||
reply = ynl.dump(args.dump, attrs)
|
||||
output(reply)
|
||||
except NlError as e:
|
||||
print(e)
|
||||
exit(1)
|
||||
|
||||
if args.ntf:
|
||||
ynl.check_ntf()
|
||||
|
||||
Reference in New Issue
Block a user