diff options
author | Daniil Baturin <daniil@baturin.org> | 2017-09-08 00:50:23 +0200 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2017-09-08 00:50:23 +0200 |
commit | 8964d2aaf758962704214fb4325b45c0c11134fa (patch) | |
tree | db64c127d6bb7c94e5f0ead1c696a2346f572f91 | |
parent | b626e36f45a5cb24da4b69ec6de06ea84710e9bd (diff) | |
download | vyos-1x-8964d2aaf758962704214fb4325b45c0c11134fa.tar.gz vyos-1x-8964d2aaf758962704214fb4325b45c0c11134fa.zip |
Fix handling of tag and multi nodes in the convertor.
Ugly fixup in the makefile to delete generated node.def's that are now in other packages.
Adjust the cron interface definition to better match the old templates.
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | interface-definitions/cron.xml | 7 | ||||
-rwxr-xr-x | scripts/build-command-templates | 19 |
3 files changed, 24 insertions, 5 deletions
@@ -5,6 +5,9 @@ TMPL_DIR := templates interface_definitions: find $(CURDIR)/interface-definitions/ -type f | xargs -I {} $(CURDIR)/scripts/build-command-templates {} $(CURDIR)/schema/interface_definition.rng $(TMPL_DIR) + # XXX: delete top level node.def's that now live in other packages + rm $(TMPL_DIR)/system/node.def + .PHONY: all all: interface_definitions diff --git a/interface-definitions/cron.xml b/interface-definitions/cron.xml index 1982ac87c..8ea291a2e 100644 --- a/interface-definitions/cron.xml +++ b/interface-definitions/cron.xml @@ -3,11 +3,14 @@ <!-- Cron configuration --> <interfaceDefinition> - <node name="system" owner="vyos-update-cron"> + <node name="system"> <children> <node name="task-scheduler"> + <properties> + <help>Task scheduler settings</help> + </properties> <children> - <tagNode name="task"> + <tagNode name="task" owner="${vyatta_sbindir}/vyos-update-crontab.py"> <properties> <help>Scheduled task</help> <valueHelp> diff --git a/scripts/build-command-templates b/scripts/build-command-templates index 3c95bde21..17442bfcb 100755 --- a/scripts/build-command-templates +++ b/scripts/build-command-templates @@ -70,7 +70,7 @@ def make_path(l): return(functools.reduce(os.path.join, l)) def get_properties(p): - props = {"tag": False, "type": "txt"} + props = {} if p is None: return props @@ -97,6 +97,10 @@ def get_properties(p): except: pass + # Get "multi" + if p.find("multi") is not None: + props["multi"] = True + return props def make_node_def(props): @@ -108,7 +112,11 @@ def make_node_def(props): if "tag" in props: node_def += "tag:\n" - node_def += "type: {0}\n".format(props["type"]) + if "type" in props: + node_def += "type: {0}\n".format(props["type"]) + + if "multi" in props: + node_def += "multi:\n" if "priority" in props: node_def += "priority: {0}\n".format(props["priority"]) @@ -135,6 +143,7 @@ def process_node(n, tmpl_dir): name = n.get("name") owner = n.get("owner") + node_type = n.tag my_tmpl_dir.append(name) os.makedirs(make_path(my_tmpl_dir), exist_ok=True) @@ -142,13 +151,17 @@ def process_node(n, tmpl_dir): props = get_properties(props_elem) if owner: props["owner"] = owner + # Type should not be set for non-tag, non-leaf nodes + if node_type != "node": + props["type"] = "txt" + if node_type == "tagNode": + props["tag"] = "True" with open(os.path.join(make_path(my_tmpl_dir), "node.def"), "w") as f: f.write(make_node_def(props)) - node_type = n.tag if node_type == "node": inner_nodes = children.iterfind("*") for inner_n in inner_nodes: |