summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2025-02-06T6946: add test function and executableJohn Estabrook
2025-02-06T6946: calculate priority listsJohn Estabrook
2025-02-06T6946: add utils for assembling commit dataJohn Estabrook
2025-02-06T6946: add log message on readJohn Estabrook
2025-01-15T7046: add request reload_reftreeJohn Estabrook
2025-01-14T7046: move reftree.cache to unique directoryJohn Estabrook
This will simplify updates of the reference_tree in case of supplemental contributions, say, addon packages.
2025-01-14T7046: T6946: make world fields reference_tree, running_config mutableJohn Estabrook
The world data structure is fixed in the main loop, however, it will need updates for dynamic loading of reference tree in the presence of addons, respectively, the running config at completion of commit.
2024-12-09T6718: use correct lib name in absence of libvyatta-cfg-devJohn Estabrook
An artifact of development was the use of lib name libvyatta-cfg.so for dlopen instead of libyatta-cfg.so.1. The former exists when the libvyatta-cfg-dev package is installed, as it is when vyatta-cfg is built locally. As the dev package is not needed nor used by default builds, correct to the latter lib name, as installed by libvyatta-cfg.
2024-10-27T6718: drop output of rendered config on startupJohn Estabrook
2024-10-27T6718: read argv explicity instead of using ArgJohn Estabrook
The standard package Arg is understandably confused by paths such as: interfaces openvpn vtun0 openvpn-option --persist-tun Collect args from Sys.argv and use env vars for debug options.
2024-10-27T6718: handle_connection should close fd on End_of_fileJohn Estabrook
2024-10-27T6718: drop unnecessary reference to file descriptorJohn Estabrook
2024-10-27T6718: move vyos1x-adapter into subdirectoryJohn Estabrook
The vyos1x-adapter provides access to the legacy CStore set/delete functions using ctypes. Developed as a separate package, include as a subdir, to be retired when full replacements are available.
2024-10-27T6718: add client_session module and test executable validate.mlJohn Estabrook
2024-10-27T6718: fix teardown methodJohn Estabrook
An empty protobuf message does not correctly generate encode/decode functions. This appears to be fixed upstream, but for now, use workaround of adding a reasonable field.
2024-10-27T6718: set perms on socket for group write accessJohn Estabrook
2024-10-27T6718: drop ref to utilJohn Estabrook
For convenience and to avoid dune build conflict, all util functions now reside in vyos1x-config.util.
2024-10-27T6718: split path strings with single-quoted values containing wsJohn Estabrook
2024-10-27T6718: add independent validate field and methodsJohn Estabrook
2024-10-27T6718: usr refpath to translate config paths to reference tree pathsJohn Estabrook
2024-10-27T6718: use vycli as test caseJohn Estabrook
2024-10-27T6718: root node now has empty nameJohn Estabrook
The root node name was changed in vyos1x-config (T4491) so as not to conflict with actual nodes named "root".
2024-10-27T6718: restrict directory existence check to validators dirJohn Estabrook
2024-10-27T6718: vyconfd.conf will be installed in /etc/vyosJohn Estabrook
2024-10-27T6718: read reference tree json file on startupJohn Estabrook
2024-10-27T6718: add rule to generate protobuf with name changeJohn Estabrook
Regenerate protobuf files: ocaml-protoc --ml_out src/ data/vyconf.proto The generated files vyconf.* are renamed vyconf_pbt.* instead of the split into vyconf_pb/vyconf_types as in the original implementation.
2024-10-27T6718: reorganize layout for dune build of libs/executablesJohn Estabrook
2024-10-27T6718: update build system, drop batteries, and adjust for lib changesJohn Estabrook
Update as needed for use with contemporary vyos1x-config: . update build system to use dune . drop use of batteries . update for protoc breaking changes in versions >= 3.0 . remove files now in vyos1x-config (config_tree et. al.; parsing)
2020-03-12Fix module path for newer versions of the Protobuf compiler runtime.Daniil Baturin
2019-02-14Add functions for copying and moving nodes.Daniil Baturin
2018-11-29Escape special characters inside value strings when converting configs to ↵Daniil Baturin
commands.
2018-09-02Add support for node renaming.Daniil Baturin
2018-06-06Use String.concat instead of reinventing it with fold.Daniil Baturin
2018-06-05Add a function for getting sorted children from a node and use it for ↵Daniil Baturin
sorting set commands.
2018-06-04Initial implementation of the commands formatter.Daniil Baturin
2018-05-23Expose missing exceptions from Config_tree in the module interface.Daniil Baturin
2018-05-23Render valueless nodes correctly.Daniil Baturin
The canonical format for valueless nodes is "foo;". There are two cases: when it's known from the reference tree that a node is valueless, we should render it the canonical way. However, a valueless node is not the same as a normal node with no children, semantically, so nodes that are note valueless should be rendered as "foo {}". If the reference tree is not present, resort to rendering all nodes without values as if they were normal nodes with no children rather than as if they were valueless. The parser is unaware of the distinction, so there are no implications for it.
2018-05-22Remove a leftover debug print.Daniil Baturin
2018-05-22Send a response to the client if error occurs.Daniil Baturin
2018-05-21Get the show_config operation to work correctly.Daniil Baturin
2018-02-18Do not quote values that don't need quoting in Config_tree.renderDaniil Baturin
i.e. if they don't contain whitespace or characters of special significance to the parser (;[]{}#).
2018-02-17Add Config_tree.render_at_level function for correct rendering of configs ↵Daniil Baturin
for human consumption. The idea of the correct (for subsequent parsing) and familiar for all other purposes rendering: * When rendering the entire config, do not render the invisible "root" node, only render its children. * When rendering config at specified path, do not include any nodes that are within the path (e.g. if path "system login" exists, "show system" request output should start with "login {", not "system { login { ...").
2018-02-16Delete the old socket file if it exists.Daniil Baturin
Since there's no REUSEADDR semantic for UNIX domain sockets, that's best we can do.
2018-02-16Implement config reading functions and a minimal command line client for ↵Daniil Baturin
using them. Yes, I hate oversized commits too, but this is hard to avoid sometimes. Adjustments to the Session functions logic required to make it work: Do not try to validate the path. The validation function is geared towards validating _set_ paths, so when path lacks a value, it doesn't work right. We assume that the path has been through set at some point, so if a path currently exists in the config tree, it is also a valid path that can be used for Reference_tree.is_leaf etc.
2018-02-16Add logging of interface definition file loading.Daniil Baturin
Move the high level load_interface_definitions function from Reference_tree to Startup.
2018-02-12Add client support for the config read functions.Daniil Baturin
2018-02-12Add support for the idempotent config read functions to vyconfd.Daniil Baturin
2018-02-12Revert "Fix build with new Toml module version."Daniil Baturin
Seems lenses are back. This reverts commit 8938e627c04c01f8f30a854be6903a9abcd2fa5b.
2018-02-11Expose the list_children function in the Session module interface.Daniil Baturin
2018-02-11Rename Util.string_of_path to string_of_list since it can be used for any lists,Daniil Baturin
not just config tree paths. Add analogous function for converting a list of strings to JSON.