================================== `Tiramisu` - Getting Started ================================== What is Configuration handling ? ================================= Due to more and more available configuration options required to set up an operating system, it became quite annoying to hand the necessary options to where they are actually used and even more annoying to add new options. To circumvent these problems the configuration management was introduced. What is Tiramisu ? =================== Tiramisu is yet another configuration handler, wich aims at producing flexible and fast configuration options access. The main advantages are its access :ref:`glossary#rules` and the fact that the configuration 's consistency is preserved at any time, see :ref:`glossary#consistency`. There are type and structures's validations for configuration options, and validations towards the whole configuration. Last but not least, configuration options can be reached and changed according to the access rules from nearly everywhere in the OS boxes, e.g. the containers via the `http/json` server. Just the facts ============== .. _gettingtiramisu: Download --------- To obtain a copy of the sources, check it out from the repository using `git`. We suggest using `git` if one wants to access the current development. :: git clone ssh://gitosis@git.cadol.es:2222/tiramisu.git This will get you a fresh checkout of the code repository in a local directory named ``tiramisu``. Understanding Tiramisu's architecture -------------------------------------- The :ref:`glossary#schema` is loaded from an XML file, and the values of the configuration options are recovered from a `.ini` like file. By now, all the in-depth informations about the configuration are stored in a **single** object, the :api:`config.Config()` object, wich is responsible of nearly everything. All the necessary options are stored into a configuration object, which is available nearly everywhere, so that adding new options becomes trivial. This `Config()` is available from everywhere with the help of an http server that serves configuration datas as `json` strings (take a look at the server here: :api:`server`). .. figure:: architecture.png The basics of Tiramisu's architecture. Once loaded, http server serves the :api:`config.Config()` object, that is, the configuration options and the configuration groups.