mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 13:03:25 +01: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:
parent
cecbc52c46
commit
771b7012e5
2 changed files with 13 additions and 9 deletions
|
@ -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()
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
from .nlspec import SpecAttr, SpecAttrSet, SpecEnumEntry, SpecEnumSet, \
|
||||
SpecFamily, SpecOperation
|
||||
from .ynl import YnlFamily, Netlink
|
||||
from .ynl import YnlFamily, Netlink, NlError
|
||||
|
||||
__all__ = ["SpecAttr", "SpecAttrSet", "SpecEnumEntry", "SpecEnumSet",
|
||||
"SpecFamily", "SpecOperation", "YnlFamily", "Netlink"]
|
||||
"SpecFamily", "SpecOperation", "YnlFamily", "Netlink", "NlError"]
|
||||
|
|
Loading…
Reference in a new issue