diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-07-29 18:14:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-29 18:14:01 +0200 |
commit | 0d7ad932d2842edb8862c9f88454fa2e668871b6 (patch) | |
tree | b3a6506c22eeb1843be0068f5bb1bedaeeb87155 /src/op_mode/show_vrf.py | |
parent | fafd18c41e3333ef3d97dbf0b50e493f40aad688 (diff) | |
parent | 5e7120a00278671a73e9762a5da5e6f6961a387d (diff) | |
download | vyos-1x-0d7ad932d2842edb8862c9f88454fa2e668871b6.tar.gz vyos-1x-0d7ad932d2842edb8862c9f88454fa2e668871b6.zip |
Merge pull request #1443 from sever-sever/T4562
vrf: T4562: Rewrite show vrf name xxx delete old script op-mode
Diffstat (limited to 'src/op_mode/show_vrf.py')
-rwxr-xr-x | src/op_mode/show_vrf.py | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/op_mode/show_vrf.py b/src/op_mode/show_vrf.py deleted file mode 100755 index 3c7a90205..000000000 --- a/src/op_mode/show_vrf.py +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2020 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 -# 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/>. - -import argparse -import jinja2 -from json import loads - -from vyos.util import cmd - -vrf_out_tmpl = """VRF name state mac address flags interfaces --------- ----- ----------- ----- ---------- -{%- for v in vrf %} -{{"%-16s"|format(v.ifname)}} {{ "%-8s"|format(v.operstate | lower())}} {{"%-17s"|format(v.address | lower())}} {{ v.flags|join(',')|lower()}} {{v.members|join(',')|lower()}} -{%- endfor %} - -""" - -def list_vrfs(): - command = 'ip -j -br link show type vrf' - answer = loads(cmd(command)) - return [_ for _ in answer if _] - -def list_vrf_members(vrf): - command = f'ip -j -br link show master {vrf}' - answer = loads(cmd(command)) - return [_ for _ in answer if _] - -parser = argparse.ArgumentParser() -group = parser.add_mutually_exclusive_group() -group.add_argument("-e", "--extensive", action="store_true", - help="provide detailed vrf informatio") -parser.add_argument('interface', metavar='I', type=str, nargs='?', - help='interface to display') - -args = parser.parse_args() - -if args.extensive: - data = { 'vrf': [] } - for vrf in list_vrfs(): - name = vrf['ifname'] - if args.interface and name != args.interface: - continue - - vrf['members'] = [] - for member in list_vrf_members(name): - vrf['members'].append(member['ifname']) - data['vrf'].append(vrf) - - tmpl = jinja2.Template(vrf_out_tmpl) - print(tmpl.render(data)) - -else: - print(" ".join([vrf['ifname'] for vrf in list_vrfs()])) |