]> sourceware.org Git - lvm2.git/commit
config: use config checks and add support for creating trees from config definition...
authorPeter Rajnoha <prajnoha@redhat.com>
Tue, 5 Mar 2013 16:36:10 +0000 (17:36 +0100)
committerPeter Rajnoha <prajnoha@redhat.com>
Wed, 6 Mar 2013 09:46:35 +0000 (10:46 +0100)
commit245b85692ec9f30153c1aa7216d81e65bb132792
tree784d8017610b9fbec9cd2ca79ed91908ea0a2a80
parente38aaddb5e72a2123a03dedbb40c2aa594495c17
config: use config checks and add support for creating trees from config definition (config_def_create_tree fn)

Configuration checking is initiated during config load/processing
(_process_config fn) which is part of the command context
creation/refresh.

This patch also defines 5 types of trees that could be created from
the configuration definition (config_settings.h), the cfg_def_tree_t:

  - CFG_DEF_TREE_CURRENT that denotes a tree of all the configuration
    nodes that are explicitly defined in lvm.conf/--config

  - CFG_DEF_TREE_MISSING that denotes a tree of all missing
    configuration nodes for which default valus are used since they're
    not explicitly used in lvm.conf/--config

  - CFG_DEF_TREE_DEFAULT that denotes a tree of all possible
    configuration nodes with default values assigned, no matter what
    the actual lvm.conf/--config is

  - CFG_DEF_TREE_NEW that denotes a tree of all new configuration nodes
    that appeared in given version

  - CFG_DEF_TREE_COMPLETE that denotes a tree of the whole configuration
    tree that is used in LVM2 (a combination of CFG_DEF_TREE_CURRENT +
    CFG_DEF_TREE_MISSING). This is not implemented yet, it will be added
    later...

The function that creates the definition tree of given type:

  struct dm_config_tree *config_def_create_tree(struct config_def_tree_spec *spec);

Where the "spec" specifies the tree type to be created:

  struct config_def_tree_spec {
    cfg_def_tree_t type; /* tree type */
    uint16_t version; /* tree at this LVM2 version */
    int ignoreadvanced; /* do not include advanced configs */
    int ignoreunsupported; /* do not include unsupported configs */
  };

This tree can be passed to already existing functions that write
the tree on output (like we already do with cmd->cft).

There is a new lvm.conf section called "config" with two new options:

  - config/checks which enables/disables checking (enabled by default)

  - config/abort_on_errors which enables/disables aborts on any type of
    mismatch found in the config (disabled by default)
doc/example.conf.in
lib/commands/toolcontext.c
lib/config/config.c
lib/config/config.h
lib/config/config_settings.h
This page took 0.032204 seconds and 5 git commands to generate.