diff options
author | John Estabrook <jestabro@vyos.io> | 2023-12-23 16:22:31 -0800 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2023-12-24 08:41:37 +0000 |
commit | 3ba1686b1fee167dffe5c14f961412fe0363116c (patch) | |
tree | 2be7d41092ee50c8bbf5854eeeada2d193a3f1c0 /scripts/override-default | |
parent | da86681d04fd1c3d23f3c5bd898fbec9e0e6535a (diff) | |
download | vyos-1x-3ba1686b1fee167dffe5c14f961412fe0363116c.tar.gz vyos-1x-3ba1686b1fee167dffe5c14f961412fe0363116c.zip |
xml: T5854: clear empty paths left by embedded override of defaultValue
(cherry picked from commit c4f9c936c9fdd32e7f6258c0dfa8c8cf6057998d)
Diffstat (limited to 'scripts/override-default')
-rwxr-xr-x | scripts/override-default | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/scripts/override-default b/scripts/override-default index 0c49087c8..5058e79b3 100755 --- a/scripts/override-default +++ b/scripts/override-default @@ -41,6 +41,14 @@ if debug: else: logger.setLevel(logging.INFO) +def clear_empty_path(el): + # on the odd chance of interleaved comments + tmp = [l for l in el if isinstance(l.tag, str)] + if not tmp: + p = el.getparent() + p.remove(el) + clear_empty_path(p) + def override_element(l: list): """ Allow multiple override elements; use the final one (in document order). @@ -59,7 +67,9 @@ def override_element(l: list): # remove all but overridden element for el in parents: - el.getparent().remove(el) + tmp = el.getparent() + tmp.remove(el) + clear_empty_path(tmp) def merge_remaining(l: list, elementtree): """ @@ -81,7 +91,9 @@ def merge_remaining(l: list, elementtree): # override_element() has already run for child in el: rp[0].append(deepcopy(child)) - el.getparent().remove(el) + tmp = el.getparent() + tmp.remove(el) + clear_empty_path(tmp) def collect_and_override(dir_name): """ @@ -104,7 +116,7 @@ def collect_and_override(dir_name): for k, v in defv.items(): if len(v) > 1: - logger.info(f"overridding default in path '{k}'") + logger.info(f"overriding default in path '{k}'") override_element(v) to_merge = list(defv) |