Helper Functions

oslo_config.cfg.find_config_files(project=None, prog=None, extension='.conf')

Return a list of default configuration files.

Parameters
  • project – an optional project name

  • prog – the program name, defaulting to the basename of sys.argv[0], without extension .py

  • extension – the type of the config file

We default to two config files: [${project}.conf, ${prog}.conf]

And we look for those config files in the following directories:

~/.${project}/
~/
/etc/${project}/
/etc/
${SNAP_COMMON}/etc/${project}
${SNAP}/etc/${project}

We return an absolute path for (at most) one of each the default config files, for the topmost directory it exists in.

For example, if project=foo, prog=bar and /etc/foo/foo.conf, /etc/bar.conf and ~/.foo/bar.conf all exist, then we return [‘/etc/foo/foo.conf’, ‘~/.foo/bar.conf’]

If no project name is supplied, we only look for ${prog}.conf.

oslo_config.cfg.set_defaults(opts, **kwargs)

Showing detailed locations for configuration settings

oslo.config can track the location in application and library code where an option is defined, defaults are set, or values are overridden. This feature is disabled by default because it is expensive and incurs a significant performance penalty, but it can be useful for developers tracing down issues with configuration option definitions.

To turn on detailed location tracking, set the environment variable OSLO_CONFIG_SHOW_CODE_LOCATIONS to any non-empty value (for example, "1" or "yes, please") before starting the application, test suite, or script. Then use ConfigOpts.get_location() to access the location data for the option.