diff options
author | Daniil Baturin <daniil@vyos.io> | 2024-08-26 09:57:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-26 09:57:06 +0100 |
commit | 99556ee5e61f2335bffc827ba91a5aad6f4e7f99 (patch) | |
tree | 26012cdf6c0802e54b8e2acb9493507deecb732a /src/services/vyos-configd | |
parent | 190ae20824784271376c74eb9d6685155bc29cd8 (diff) | |
parent | eafe92390982b47195013c7952137192bc21a1d0 (diff) | |
download | vyos-1x-99556ee5e61f2335bffc827ba91a5aad6f4e7f99.tar.gz vyos-1x-99556ee5e61f2335bffc827ba91a5aad6f4e7f99.zip |
Merge pull request #4016 from vyos/mergify/bp/circinus/pr-4015
T6671: defer config dependency if scheduled in priority queue (backport #4015)
Diffstat (limited to 'src/services/vyos-configd')
-rwxr-xr-x | src/services/vyos-configd | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/services/vyos-configd b/src/services/vyos-configd index d797e90cf..3674d9627 100755 --- a/src/services/vyos-configd +++ b/src/services/vyos-configd @@ -30,6 +30,7 @@ from vyos.defaults import directories from vyos.utils.boot import boot_configuration_complete from vyos.configsource import ConfigSourceString from vyos.configsource import ConfigSourceError +from vyos.configdiff import get_commit_scripts from vyos.config import Config from vyos import ConfigError @@ -220,6 +221,12 @@ def initialization(socket): dependent_func: dict[str, list[typing.Callable]] = {} setattr(config, 'dependent_func', dependent_func) + commit_scripts = get_commit_scripts(config) + logger.debug(f'commit_scripts: {commit_scripts}') + + scripts_called = [] + setattr(config, 'scripts_called', scripts_called) + return config def process_node_data(config, data, last: bool = False) -> int: @@ -228,6 +235,7 @@ def process_node_data(config, data, last: bool = False) -> int: return R_ERROR_DAEMON script_name = None + os.environ['VYOS_TAGNODE_VALUE'] = '' args = [] config.dependency_list.clear() @@ -244,6 +252,12 @@ def process_node_data(config, data, last: bool = False) -> int: args = res.group(3).split() args.insert(0, f'{script_name}.py') + tag_value = os.getenv('VYOS_TAGNODE_VALUE', '') + tag_ext = f'_{tag_value}' if tag_value else '' + script_record = f'{script_name}{tag_ext}' + scripts_called = getattr(config, 'scripts_called', []) + scripts_called.append(script_record) + if script_name not in include_set: return R_PASS @@ -302,11 +316,12 @@ if __name__ == '__main__': socket.send(resp.encode()) config = initialization(socket) elif message["type"] == "node": - if message["last"]: - logger.debug(f'final element of priority queue') res = process_node_data(config, message["data"], message["last"]) response = res.to_bytes(1, byteorder=sys.byteorder) logger.debug(f"Sending response {res}") socket.send(response) + if message["last"] and config: + scripts_called = getattr(config, 'scripts_called', []) + logger.debug(f'scripts_called: {scripts_called}') else: logger.critical(f"Unexpected message: {message}") |