summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-04-02 12:57:30 +0200
committerChristian Poessinger <christian@poessinger.com>2021-04-02 19:34:30 +0200
commitb4fdcebebecd8d8952211b78bce26d53fd29edb3 (patch)
treece9c41857b2ea8ae6e17c5f9334e7b7f1f004b05 /scripts
parent99440fc005d734d602fb9cd5b546e320c9b1e19b (diff)
downloadvyos-1x-b4fdcebebecd8d8952211b78bce26d53fd29edb3.tar.gz
vyos-1x-b4fdcebebecd8d8952211b78bce26d53fd29edb3.zip
T3165: prevent override of populated node.def file with empty content
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/build-command-op-templates7
-rwxr-xr-xscripts/build-command-templates11
2 files changed, 9 insertions, 9 deletions
diff --git a/scripts/build-command-op-templates b/scripts/build-command-op-templates
index c60b32a1e..c285ee594 100755
--- a/scripts/build-command-op-templates
+++ b/scripts/build-command-op-templates
@@ -170,12 +170,11 @@ def process_node(n, tmpl_dir):
print("Processing node {}".format(name))
nodedef_path = os.path.join(make_path(my_tmpl_dir), "node.def")
- if not os.path.exists(nodedef_path):
+ # Only create the "node.def" file if it exists but is empty, or if it
+ # does not exist at all.
+ if not os.path.exists(nodedef_path) or os.path.getsize(nodedef_path) == 0:
with open(nodedef_path, "w") as f:
f.write(make_node_def(props, command))
- else:
- # Something has already generated this file
- pass
if children is not None:
inner_nodes = children.iterfind("*")
diff --git a/scripts/build-command-templates b/scripts/build-command-templates
index d6585b0cc..452c420eb 100755
--- a/scripts/build-command-templates
+++ b/scripts/build-command-templates
@@ -274,13 +274,14 @@ def process_node(n, tmpl_dir):
raise ValueError("<valueless/> is only allowed in <leafNode>")
nodedef_path = os.path.join(make_path(my_tmpl_dir), "node.def")
- if not os.path.exists(nodedef_path):
+
+ # Only create the "node.def" file if it exists but is empty, or if it does
+ # not exist at all. An empty node.def file could be generated by XML paths
+ # that derive from one another bot having a common base structure like
+ # "protocols static"
+ if not os.path.exists(nodedef_path) or os.path.getsize(nodedef_path) == 0:
with open(nodedef_path, "w") as f:
f.write(make_node_def(props))
- else:
- # Something has already generated that file
- pass
-
if node_type == "node":
inner_nodes = children.iterfind("*")