Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
|
|
|
|
T413: Make a schema for op mode
|
|
i.e. if they don't contain whitespace or characters of special significance
to the parser (;[]{}#).
|
|
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 { ...").
|
|
Since there's no REUSEADDR semantic for UNIX domain sockets,
that's best we can do.
|
|
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.
|
|
Move the high level load_interface_definitions function from Reference_tree
to Startup.
|
|
|
|
|
|
Seems lenses are back.
This reverts commit 8938e627c04c01f8f30a854be6903a9abcd2fa5b.
|
|
|
|
not just config tree paths.
Add analogous function for converting a list of strings to JSON.
|
|
|
|
mode functions.
Re-generate the protobuf-derived modules.
NB: Newer versions of ocaml-protoc moved types to a separate module, needs to be accounted for in other
files.
|
|
|
|
basepath.
|
|
I have no idea where TomlLenses module is gone but frankly the whole thing
is a lot less pretty without it.
|
|
|
|
|
|
|
|
|
|
the appliance config.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Make minor corrections to readme
|
|
|
|
* Add stand-alone config_tree renderer
* Add tests for stand-alone config_tree renderer
* Add renderer with reference tree
* Add tests for Config_tree renderer with reftree
* Update config files
* Add refactoring functions and correct tests
|
|
|
|
|
|
Basepath is better be a command line option, since when it's really needed,
having it in the config is pretty much useless.
This reverts commit 377de9472716266bb932813a8f7a7ba9aa1630fb.
|
|
|
|
Right now the primary motivation is ease of testing without installing
any appliance on a real system, but in real appliances, this may be handy
for those who want things in /opt, even if I'm not a fan of /opt
|
|
If we are going to use batteries for numeric_compare, why not take
advantage of the rest.
|
|
|
|
|
|
It was failing because reference tree loader doesn't make guarantess about
the order of children in the resulting tree.
|
|
Findlib package "vyconf" now contains modules required for working with configs,
namely Vytree, Config_tree, Reference_tree, Valur_checker, Curly_lexer, and Curly_parser.
Renderer will go there too. Migration scripts and convertors/analyzers/whatever utilities
that need to read and write config files will link with it.
The "vyconf.vyconf-config" package is for working with vyconfd.conf config.
Config scripts written in OCaml, the shell, and the non-interactive client can use it to
read the system config if the user didn't use options for socket location and so on.
The "vyconf.vyconf-client" package is for the Protobuf over UNIX sockets protocol clients.
|