diff options
author | Brandon Stepler <brandon@stepler.net> | 2021-07-29 14:30:00 -0400 |
---|---|---|
committer | Brandon Stepler <brandon@stepler.net> | 2021-07-29 14:30:00 -0400 |
commit | 3341c591ad1190f39ff3ffd475eddf5d95aef763 (patch) | |
tree | c50d2ad77f6e9b9a612b43a550bbb67357ed91f0 | |
parent | 65765fe95a34d81ad4a3aedb035936bbaf6a3f0e (diff) | |
download | vyos-1x-3341c591ad1190f39ff3ffd475eddf5d95aef763.tar.gz vyos-1x-3341c591ad1190f39ff3ffd475eddf5d95aef763.zip |
configd: T3694: always set script.argv
Several scripts imported by vyos-configd (including
src/conf_mode/protocols_static.py) rely on argv for operating on VRFs.
Always setting script.argv in src/services/vyos-configd ensures those
scripts will operate on the default VRF when called with no arguments.
Otherwise, a stale argv might cause those scripts to operate on the last
modified VRF instead of the default VRF.
-rwxr-xr-x | src/services/vyos-configd | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/services/vyos-configd b/src/services/vyos-configd index 6f770b696..670b6e66a 100755 --- a/src/services/vyos-configd +++ b/src/services/vyos-configd @@ -133,8 +133,7 @@ def explicit_print(path, mode, msg): logger.critical("error explicit_print") def run_script(script, config, args) -> int: - if args: - script.argv = args + script.argv = args config.set_level([]) try: c = script.get_config(config) @@ -208,7 +207,7 @@ def process_node_data(config, data) -> int: return R_ERROR_DAEMON script_name = None - args = None + args = [] res = re.match(r'^(VYOS_TAGNODE_VALUE=[^/]+)?.*\/([^/]+).py(.*)', data) if res.group(1): @@ -221,7 +220,7 @@ def process_node_data(config, data) -> int: return R_ERROR_DAEMON if res.group(3): args = res.group(3).split() - args.insert(0, f'{script_name}.py') + args.insert(0, f'{script_name}.py') if script_name not in include_set: return R_PASS |