Re-designing the config parsers

Marcin Siodelski marcin at isc.org
Tue Sep 9 15:20:10 UTC 2014


We have been discussing for a while that our configuration parsers are
not friendly and adding new configuration parameters to Kea is a pain. I
created a thread on this mailing list, not so long ago, which is about
changing the CfgMgr to support atomic commits and rolling back changes
if the configuration fails:
https://lists.isc.org/pipermail/kea-dev/2014-August/000065.html

As a followup to this thread I would like to propose that we re-design
our configuration parsers so as adding new configuration parameters to
Kea is easier and less error prone.

Briefly....

I'd like to propose that we make use of the .spec files to define the
supported parameters, the required order in which the parsing should be
done, to associate the parsed parameter with the actual parser and to
allow self documentation of the supported parameters.

I would also like to create a central repository of the parsers which
will expose a factory function returning appropriate parser instance for
each element in the spec file (either default parser or specialized one
when defined).

Please see the draft document for full details:
http://kea.isc.org/wiki/ConfigParseDesign and throw tomatoes if needed.

I should also explain that we discussed with Tomek a use of Bizon
framework (http://www.gnu.org/software/bison/) in Kea.

However, since we already have the JSON parsers and spec files I am not
sure we want to create additional dependency for Kea or include a third
party software in our code base. But, it is obviously something that we
can take into consideration.

Marcin


More information about the kea-dev mailing list