diff options
Diffstat (limited to 'src/services/vyos-configd')
| -rwxr-xr-x | src/services/vyos-configd | 16 | 
1 files changed, 13 insertions, 3 deletions
| diff --git a/src/services/vyos-configd b/src/services/vyos-configd index 28acccd2c..22eb48102 100755 --- a/src/services/vyos-configd +++ b/src/services/vyos-configd @@ -1,6 +1,6 @@  #!/usr/bin/env python3  # -# Copyright (C) 2020-2024 VyOS maintainers and contributors +# Copyright VyOS maintainers and contributors <maintainers@vyos.io>  #  # 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 @@ -68,6 +68,7 @@ class Response(Enum):      ERROR_COMMIT = 2      ERROR_DAEMON = 4      PASS = 8 +    ERROR_COMMIT_APPLY = 16  vyos_conf_scripts_dir = directories['conf_mode'] @@ -142,8 +143,6 @@ def run_script(script_name, config, args) -> tuple[Response, str]:      try:          c = script.get_config(config)          script.verify(c) -        script.generate(c) -        script.apply(c)      except ConfigError as e:          logger.error(e)          return Response.ERROR_COMMIT, str(e) @@ -152,6 +151,17 @@ def run_script(script_name, config, args) -> tuple[Response, str]:          logger.error(tb)          return Response.ERROR_COMMIT, tb +    try: +        script.generate(c) +        script.apply(c) +    except ConfigError as e: +        logger.error(e) +        return Response.ERROR_COMMIT_APPLY, str(e) +    except Exception: +        tb = traceback.format_exc() +        logger.error(tb) +        return Response.ERROR_COMMIT_APPLY, tb +      return Response.SUCCESS, '' | 
