Page MenuHomeVyOS Platform

Correct rendering of childless non-leaf nodes
Open, NormalPublic

Description

Right now, our config rendering cannot handle childless non-leaf nodes. It always renders them as if they were valueless nodes:

utop # Vyos1x.Parser.from_string {|
system {
  /* This is a non-leaf childless node */
  login {
  }
}

|} |> Vyos1x.Config_tree.render_config |> Printf.printf "Rendered config:\n\n%s\n" ;;
Rendered config:

system {
    /* This is a non-leaf childless node */
    login
}

- : unit = ()

That can cause incorrect behavior and, and even when it doesn't, it's still wrong and breaks the expectation that parsed configs will be rendered exactly as they came.

Details

Version
-
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)