############### Recipe elements ############### ******** Overview ******** The Anabot recipe is an XML file consisting of specific elements. Here's an overview of supported elements, represented as a path in the tree-like structure of the file for a better readability. There are two main areas (applications) covered by Anabot - Anaconda and Initial Setup. As Anabot uses *handlers* (functions typically performing an actual action in the GUI) and *checks* (functions checking that the action took place in an expected way); they return results based on whether the action/check was successful. The expected outcome can be defined by ``policy`` attribute of any element in the recipe (when description of any element below states that it takes no attributes, it means arguments *specific* for the particular element) and it can contain the following values: * ``should_pass`` (implicit value) - the element's handler should be executed and it is expected that check result should be successful * ``should_fail`` - similar, but the check is expected to fail * ``just_check`` - don't execute the handler (don't perform any action), only check the expected resulting state (e. g. an input field contains expected text) * ``just_check_fail`` - don't perform any action, only check that the expected result is **not** present A small subset of elements (e. g. :doc:`/installation/hub/oscap_addon `) also supports ``fail_type`` attribute, which can be used for a finer handling of the specific failure reason. .. note:: The elements description below describe available attributes and their meanings and values. If a meaning and/or allowed values of an attribute aren't mentioned explicitly, they are considered obvious from the context (i. e. ``value`` attribute for a text input field). In a similar way, some attributes take binary values by nature (e. g. enable/disable, accept/reject), but technically, on implementation level, one of the values is exactly specified (e. g. ``enable``) and the complementary one can be represented by any, unspecified value (e. g. ``disable``, ``disabled`` or even ``foobar``). In such cases the following descriptions can specify a specific value even on places where an arbitrary (complementary, unspecified) one could be used for the sake of clarity. It is strongly advised to only use those specified values so as to make things easy to understand and consistent, instead of some arbitrary ones, despite their functional equivalence. ******** Anaconda ******** The *ez* namespace ================== Anabot's preprocessor supports omitting parts of the recipe (elements or attributes) while creating the necessary attributes itself, thus making the recipe creation somewhat easier and more readable. This can be achieved by using the ``ez`` prefix within the supported elements (after first defining the namespace). For instance, a recipe containing just .. code-block:: xml will expand into a functionally complete minimal recipe containing the explicitly defined parts (````), with the rest generated automatically by preprocessor: .. code-block:: xml