diff options
Diffstat (limited to 'python/xref2vtysh.py')
| -rw-r--r-- | python/xref2vtysh.py | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/python/xref2vtysh.py b/python/xref2vtysh.py index f18aa20c92..c325979d24 100644 --- a/python/xref2vtysh.py +++ b/python/xref2vtysh.py @@ -1,20 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0-or-later # FRR xref vtysh command extraction # # Copyright (C) 2022 David Lamparter for NetDEF, Inc. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the Free -# Software Foundation; either version 2 of the License, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; see the file COPYING; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ Generate vtysh_cmd.c from frr .xref file(s). @@ -57,7 +44,7 @@ daemon_flags = { "lib/routemap.c": "VTYSH_RMAP", "lib/routemap_cli.c": "VTYSH_RMAP", "lib/spf_backoff.c": "VTYSH_ISISD", - "lib/thread.c": "VTYSH_ALL", + "lib/event.c": "VTYSH_ALL", "lib/vrf.c": "VTYSH_VRF", "lib/vty.c": "VTYSH_ALL", } @@ -338,7 +325,17 @@ class CommandEntry: def load(cls, xref): nodes = NodeDict() + mgmtname = "mgmtd/libmgmt_be_nb.la" for cmd_name, origins in xref.get("cli", {}).items(): + # If mgmtd has a yang version of a CLI command, make it the only daemon + # to handle it. For now, daemons can still be compiling their cmds into the + # binaries to allow for running standalone with CLI config files. When they + # do this they will also be present in the xref file, but we want to ignore + # those in vtysh. + if "yang" in origins.get(mgmtname, {}).get("attrs", []): + CommandEntry.process(nodes, cmd_name, mgmtname, origins[mgmtname]) + continue + for origin, spec in origins.items(): CommandEntry.process(nodes, cmd_name, origin, spec) return nodes |
