diff --git a/op-mode-definitions/include/vni-tagnode-all.xml.i b/op-mode-definitions/include/vni-tagnode-all.xml.i index 18f74653b..fabab19d7 100644 --- a/op-mode-definitions/include/vni-tagnode-all.xml.i +++ b/op-mode-definitions/include/vni-tagnode-all.xml.i @@ -1,12 +1,12 @@ <!-- included start from vni-tagnode-all.xml.i --> <tagNode name="vni"> <properties> <help>VXLAN network identifier (VNI) number</help> <completionHelp> <list><1-16777215> all</list> - <script>${vyos_completion_dir}/list_vni.py</script> + <script>${vyos_completion_dir}/list_vni.sh</script> </completionHelp> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </tagNode> <!-- included end --> diff --git a/op-mode-definitions/include/vni-tagnode.xml.i b/op-mode-definitions/include/vni-tagnode.xml.i index 363da8d5e..f5b99dcc8 100644 --- a/op-mode-definitions/include/vni-tagnode.xml.i +++ b/op-mode-definitions/include/vni-tagnode.xml.i @@ -1,12 +1,12 @@ <!-- included start from vni-tagnode.xml.i --> <tagNode name="vni"> <properties> <help>VXLAN network identifier (VNI) number</help> <completionHelp> <list><1-16777215></list> - <script>${vyos_completion_dir}/list_vni.py</script> + <script>${vyos_completion_dir}/list_vni.sh</script> </completionHelp> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </tagNode> <!-- included end --> diff --git a/op-mode-definitions/show-evpn.xml.in b/op-mode-definitions/show-evpn.xml.in index ba3b104cd..3c1e5c7d6 100644 --- a/op-mode-definitions/show-evpn.xml.in +++ b/op-mode-definitions/show-evpn.xml.in @@ -1,129 +1,129 @@ <?xml version="1.0"?> <interfaceDefinition> <node name="show"> <children> <node name="evpn"> <properties> <help>Show Ethernet VPN (EVPN) information</help> </properties> <children> <node name="access-vlan"> <properties> <help>Access VLANs</help> </properties> <children> #include <include/frr-detail.xml.i> </children> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </node> <tagNode name="access-vlan"> <properties> <help>Access VLANs interface name</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces --bridgeable --no-vlan-subinterfaces</script> </completionHelp> </properties> <children> <node name="node.tag"> <properties> <help>VLAN ID</help> <completionHelp> <list><1-4094></list> </completionHelp> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </node> </children> </tagNode> <node name="arp-cache"> <properties> <help>ARP and ND cache</help> </properties> <children> #include <include/vni-tagnode-all.xml.i> </children> </node> <tagNode name="es"> <properties> <help>Show ESI information for specified ESI</help> <completionHelp> <list><esi></list> - <script>${vyos_completion_dir}/list_esi.py</script> + <script>${vyos_completion_dir}/list_esi.sh</script> </completionHelp> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </tagNode> <node name="es"> <properties> <help>Show ESI information</help> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> <children> <leafNode name="detail"> <properties> <help>Show ESI details</help> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </leafNode> </children> </node> <node name="es-evi"> <properties> <help>Show ESI information per EVI</help> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> <children> <leafNode name="detail"> <properties> <help>Show ESI per EVI details</help> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </leafNode> #include <include/vni-tagnode.xml.i> </children> </node> <node name="mac"> <properties> <help>MAC addresses</help> </properties> <children> #include <include/vni-tagnode-all.xml.i> </children> </node> <node name="next-hops"> <properties> <help>Remote VTEPs</help> </properties> <children> #include <include/vni-tagnode-all.xml.i> </children> </node> <node name="rmac"> <properties> <help>RMAC</help> </properties> <children> #include <include/vni-tagnode-all.xml.i> </children> </node> #include <include/vni-tagnode.xml.i> <node name="vni"> <properties> <help>Show VNI information</help> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> <children> <leafNode name="detail"> <properties> <help>Show VNI details</help> </properties> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </leafNode> </children> </node> </children> <command>${vyos_op_scripts_dir}/evpn.py show_evpn --command "$*"</command> </node> </children> </node> </interfaceDefinition> diff --git a/src/completion/list_esi.py b/src/completion/list_esi.sh old mode 100644 new mode 100755 similarity index 50% rename from src/completion/list_esi.py rename to src/completion/list_esi.sh index fc40f37b6..b8373fa57 --- a/src/completion/list_esi.py +++ b/src/completion/list_esi.sh @@ -1,31 +1,20 @@ -#!/usr/bin/env python3 +#!/bin/bash # -# Copyright (C) 2016-2024 VyOS maintainers and contributors +# Copyright (C) 2024 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as # published by the Free Software Foundation. # # 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 +# 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. If not, see <http://www.gnu.org/licenses/>. # -# This script is completion helper to list all configured VNIs that are visible to FRR +# This script is completion helper to list all valid ESEs that are visible to FRR -import json -from vyos.utils.process import cmd - -def get_esi(): - esiDict = json.loads(cmd(f"vtysh -c 'show evpn es json'")) - esiList = [] - for i in esiDict: - esiList.append(i['esi']) - - print(' '.join(esiList)) - -if __name__ == '__main__': - get_esi() +esiJson=$(vtysh -c 'show evpn es json') +echo "$(echo "$esiJson" | jq -r '.[] | .esi')" diff --git a/src/completion/list_vni.py b/src/completion/list_vni.sh old mode 100644 new mode 100755 similarity index 63% rename from src/completion/list_vni.py rename to src/completion/list_vni.sh index ef78eb16f..f8bd4a993 --- a/src/completion/list_vni.py +++ b/src/completion/list_vni.sh @@ -1,27 +1,20 @@ -#!/usr/bin/env python3 +#!/bin/bash # -# Copyright (C) 2016-2024 VyOS maintainers and contributors +# Copyright (C) 2024 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as # published by the Free Software Foundation. # # 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 +# 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. If not, see <http://www.gnu.org/licenses/>. # # This script is completion helper to list all configured VNIs that are visible to FRR -import json -from vyos.utils.process import cmd - -def get_vni(): - vniDict = json.loads(cmd(f"vtysh -c 'show evpn vni json'")) - print(' '.join(vniDict.keys())) - -if __name__ == '__main__': - get_vni() +vniJson=$(vtysh -c 'show evpn vni json') +echo "$(echo "$vniJson" | jq -r 'keys | .[]')"