summaryrefslogtreecommitdiff
path: root/src/helpers/vyos-merge-config.py
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2025-06-24 07:11:41 -0500
committerJohn Estabrook <jestabro@vyos.io>2025-07-08 08:26:11 -0500
commit816834bcad0a536930dd1bc4a35ef6b8537f3522 (patch)
tree96dd6223551972b0048518154d26f5533b513f28 /src/helpers/vyos-merge-config.py
parent170244db88f76e42aeceb0b971246327fe079e19 (diff)
downloadvyos-1x-816834bcad0a536930dd1bc4a35ef6b8537f3522.tar.gz
vyos-1x-816834bcad0a536930dd1bc4a35ef6b8537f3522.zip
T7499: use direct request to vyconfd to avoid re-validating
Diffstat (limited to 'src/helpers/vyos-merge-config.py')
-rwxr-xr-xsrc/helpers/vyos-merge-config.py25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/helpers/vyos-merge-config.py b/src/helpers/vyos-merge-config.py
index 9ac4a1aed..4879b0e9c 100755
--- a/src/helpers/vyos-merge-config.py
+++ b/src/helpers/vyos-merge-config.py
@@ -14,7 +14,6 @@
import os
import sys
import shlex
-import tempfile
import argparse
from vyos.defaults import directories
@@ -52,8 +51,9 @@ if any(file_name.startswith(f'{x}://') for x in protocols):
if not file_path:
sys.exit(f'No such file {file_name}')
else:
- if os.path.isfile(file_name):
- file_path = file_name
+ full_path = os.path.realpath(file_name)
+ if os.path.isfile(full_path):
+ file_path = full_path
else:
file_path = os.path.join(configdir, file_name)
if not os.path.isfile(file_path):
@@ -79,19 +79,18 @@ if paths:
merge_ct = mask_inclusive(merge_ct, mask)
config = Config()
-session_ct = config.get_config_tree()
-
-merge_res = merge(session_ct, merge_ct, destructive=args.destructive)
if config.vyconf_session is not None:
- with tempfile.NamedTemporaryFile() as merged_cache:
- merge_res.write_cache(merged_cache.name)
-
- out, err = config.vyconf_session.load_config(merged_cache.name, cached=True)
- if err:
- sys.exit(out)
- print(out)
+ out, err = config.vyconf_session.merge_config(
+ file_path, destructive=args.destructive
+ )
+ if err:
+ sys.exit(out)
+ print(out)
else:
+ session_ct = config.get_config_tree()
+ merge_res = merge(session_ct, merge_ct, destructive=args.destructive)
+
load_explicit(merge_res)