Reads any config files, specified and/or default ones, stores their contents
and provides methods that other modules can use to fetch them.
There are two distinct classes of configuration information, that reside in
separate files. There is configuration, which modifies how things run. This
is, for example, network timeouts, database connection information, file paths
and such. In addition to this there is policy, which specifies things about
the tests that get run. Most importantly, the policy information specifies the
reported severity level of various test failures.
By default, DNSCheck::Config will look for four different files:
policy.yaml, config.yaml, site_policy.yaml and site_config.yaml.
Only the first two exist by default. If the second two exist, they will
override values in their respective non-site file. Local changes should go in
the site files, since the default files will get overwritten when a new
DNSCheck version is installed.
These four files will be looked for in a number of places: a config directory,
the current working directory (as determined by the Cwd module) and the
directory where the running script file is stored (as determined by the
FindBin module). By default, the config directory is share/dnscheck under
the root directory for the Perl installation. This can be changed via the
configdir (for config.yaml and policy.yaml) and sitedir (for
site_config.yalm and site_policy.yaml) parameters.
The default lookup of a file is disregarded if the parameter giving the full
path to that file is used.
There is no protection against having the same keys in the configuration and
policy files. The configuration/policy distinction is entirely for human use,
and if they want to put everything in the same bucket theyre perfectly
welcome to do so.