diff options
| -rwxr-xr-x | src/op_mode/bridge.py | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/src/op_mode/bridge.py b/src/op_mode/bridge.py index fe8dadd70..5a821a287 100755 --- a/src/op_mode/bridge.py +++ b/src/op_mode/bridge.py @@ -22,7 +22,7 @@ import typing  from sys import exit  from tabulate import tabulate -from vyos.util import cmd +from vyos.util import cmd, rc_cmd  from vyos.util import dict_search  import vyos.opmode @@ -57,7 +57,11 @@ def _get_raw_data_fdb(bridge):      """Get MAC-address for the bridge brX      :returns list      """ -    json_data = cmd(f'sudo bridge --json fdb show br {bridge}') +    code, json_data = rc_cmd(f'sudo bridge --json fdb show br {bridge}') +    # From iproute2 fdb.c, fdb_show() will only exit(-1) in case of +    # non-existent bridge device; raise error. +    if code == 255: +        raise vyos.opmode.UnconfiguredSubsystem(f"no such bridge device {bridge}")      data_dict = json.loads(json_data)      return data_dict | 
