summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2025-07-30 14:40:01 -0500
committerJohn Estabrook <jestabro@vyos.io>2025-07-30 15:37:44 -0500
commit57df93bb17da1653b1f090874f468ca8b4b3ce05 (patch)
tree7e59a536c63a2493aaed9c390f822dd7b38b0a12 /python
parenta551fa45573ef57858904773d4bcc99dbf553b19 (diff)
downloadvyos-1x-57df93bb17da1653b1f090874f468ca8b4b3ce05.tar.gz
vyos-1x-57df93bb17da1653b1f090874f468ca8b4b3ce05.zip
T7672: fix field entries for paths shared across .xml files
Use the correct pointer reference to append entries to the 'files' and 'children' fields when paths are shared across .xml files.
Diffstat (limited to 'python')
-rwxr-xr-xpython/vyos/xml_ref/generate_op_cache.py26
-rw-r--r--python/vyos/xml_ref/op_definition.py2
2 files changed, 15 insertions, 13 deletions
diff --git a/python/vyos/xml_ref/generate_op_cache.py b/python/vyos/xml_ref/generate_op_cache.py
index 266c81cd0..84553df0e 100755
--- a/python/vyos/xml_ref/generate_op_cache.py
+++ b/python/vyos/xml_ref/generate_op_cache.py
@@ -202,21 +202,23 @@ def insert_node(
if comp_scripts:
comp_help['script'] = comp_scripts
- cur_node_data = NodeData()
- cur_node_data.name = name
- cur_node_data.node_type = node_type
- cur_node_data.comp_help = comp_help
- cur_node_data.help_text = help_text
- cur_node_data.command = command_text
- cur_node_data.standalone_help_text = standalone_help_text
- cur_node_data.standalone_command = standalone_command
- cur_node_data.path = path
- cur_node_data.file = file
-
- value = {('__node_data', None): cur_node_data}
+ new_node_data = NodeData()
+ new_node_data.name = name
+ new_node_data.node_type = node_type
+ new_node_data.comp_help = comp_help
+ new_node_data.help_text = help_text
+ new_node_data.command = command_text
+ new_node_data.standalone_help_text = standalone_help_text
+ new_node_data.standalone_command = standalone_command
+ new_node_data.path = path
+
+ value = {('__node_data', None): new_node_data}
key = (name, node_type)
cur_value = d.setdefault(key, value)
+ # track the correct pointer reference:
+ cur_node_data = cur_value[('__node_data', None)]
+ cur_node_data.files.append(file)
if parent and key not in parent.children:
parent.children.append(key)
diff --git a/python/vyos/xml_ref/op_definition.py b/python/vyos/xml_ref/op_definition.py
index 7b0a45a5b..95492cd17 100644
--- a/python/vyos/xml_ref/op_definition.py
+++ b/python/vyos/xml_ref/op_definition.py
@@ -35,7 +35,7 @@ class NodeData:
standalone_help_text: Optional[str] = None
standalone_command: Optional[str] = None
path: list[str] = field(default_factory=list)
- file: str = ''
+ files: list[str] = field(default_factory=list)
children: list[tuple] = field(default_factory=list)