summaryrefslogtreecommitdiff
path: root/python/vyos/xml_ref/definition.py
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2024-08-26 16:39:39 +0200
committerGitHub <noreply@github.com>2024-08-26 16:39:39 +0200
commitfcee3f6578806d03d5107d5cc1dac4ca873a4de2 (patch)
tree4d2ff076cac42e8f114728b2a959217ad99536d1 /python/vyos/xml_ref/definition.py
parentaaeb7e3431cc7ddc8a0fbaf9c846d686b0fc7203 (diff)
parentd8ec6442930b0420e76d36a9dbf2a7baeb022608 (diff)
downloadvyos-1x-fcee3f6578806d03d5107d5cc1dac4ca873a4de2.tar.gz
vyos-1x-fcee3f6578806d03d5107d5cc1dac4ca873a4de2.zip
Merge pull request #4017 from vyos/mergify/bp/sagitta/pr-4015
T6671: defer config dependency if scheduled in priority queue (backport #4015)
Diffstat (limited to 'python/vyos/xml_ref/definition.py')
-rw-r--r--python/vyos/xml_ref/definition.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/python/vyos/xml_ref/definition.py b/python/vyos/xml_ref/definition.py
index c85835ffd..5ff28daed 100644
--- a/python/vyos/xml_ref/definition.py
+++ b/python/vyos/xml_ref/definition.py
@@ -1,4 +1,4 @@
-# Copyright 2023 VyOS maintainers and contributors <maintainers@vyos.io>
+# Copyright 2024 VyOS maintainers and contributors <maintainers@vyos.io>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -139,28 +139,38 @@ class Xml:
ref_path = path.copy()
d = self.ref
data = ''
+ tag = ''
while ref_path and d:
+ tag_val = ''
d = d.get(ref_path[0], {})
ref_path.pop(0)
if self._is_tag_node(d) and ref_path:
+ tag_val = ref_path[0]
ref_path.pop(0)
if self._is_leaf_node(d) and ref_path:
ref_path.pop(0)
res = self._get_ref_node_data(d, name)
if res is not None:
data = res
+ tag = tag_val
- return data
+ return data, tag
- def owner(self, path: list) -> str:
+ def owner(self, path: list, with_tag=False) -> str:
from pathlib import Path
- data = self._least_upper_data(path, 'owner')
+ data, tag = self._least_upper_data(path, 'owner')
+ tag_ext = f'_{tag}' if tag else ''
if data:
- data = Path(data.split()[0]).name
+ if with_tag:
+ data = Path(data.split()[0]).stem
+ data = f'{data}{tag_ext}'
+ else:
+ data = Path(data.split()[0]).name
return data
def priority(self, path: list) -> str:
- return self._least_upper_data(path, 'priority')
+ data, _ = self._least_upper_data(path, 'priority')
+ return data
@staticmethod
def _dict_get(d: dict, path: list) -> dict: