diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/op_mode/bridge.py | 8 | ||||
| -rw-r--r-- | src/services/api/graphql/graphql/mutations.py | 3 | ||||
| -rw-r--r-- | src/services/api/graphql/graphql/queries.py | 3 | 
3 files changed, 10 insertions, 4 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 diff --git a/src/services/api/graphql/graphql/mutations.py b/src/services/api/graphql/graphql/mutations.py index 1b77cff87..5ccc9b0b6 100644 --- a/src/services/api/graphql/graphql/mutations.py +++ b/src/services/api/graphql/graphql/mutations.py @@ -90,11 +90,12 @@ def make_mutation_resolver(mutation_name, class_name, session_func):              }          except OpModeError as e:              typename = type(e).__name__ +            msg = str(e)              return {                  "success": False,                  "errore": ['op_mode_error'],                  "op_mode_error": {"name": f"{typename}", -                                 "message": op_mode_err_msg.get(typename, "Unknown"), +                                 "message": msg if msg else op_mode_err_msg.get(typename, "Unknown"),                                   "vyos_code": op_mode_err_code.get(typename, 9999)}              }          except Exception as error: diff --git a/src/services/api/graphql/graphql/queries.py b/src/services/api/graphql/graphql/queries.py index 8ae61b704..b46914dcc 100644 --- a/src/services/api/graphql/graphql/queries.py +++ b/src/services/api/graphql/graphql/queries.py @@ -90,11 +90,12 @@ def make_query_resolver(query_name, class_name, session_func):              }          except OpModeError as e:              typename = type(e).__name__ +            msg = str(e)              return {                  "success": False,                  "errors": ['op_mode_error'],                  "op_mode_error": {"name": f"{typename}", -                                 "message": op_mode_err_msg.get(typename, "Unknown"), +                                 "message": msg if msg else op_mode_err_msg.get(typename, "Unknown"),                                   "vyos_code": op_mode_err_code.get(typename, 9999)}              }          except Exception as error: | 
