oslo_config.sources 包

模块内容

Oslo.config 的主要配置数据来源是纯文本、类似 INI 样式的配置文件。随着后端驱动程序支持的增加,只要存在适当的驱动程序来连接到这些外部来源并提供一种从它们获取配置值的方式,就可以将配置数据存储在不同的位置和不同的格式中。

后端驱动程序实现分为两个主要类:一种类型为 ConfigurationSourceDriver 的驱动程序类,和一种类型为 ConfigurationSource 的配置源类。

重要提示: 目前,所有后端驱动程序只能提供不可变的值。这可以保护应用程序和服务免受外部来源中选项在重新加载配置文件时被更改的影响。

class oslo_config.sources.ConfigurationSource

基类: object

oslo.config 的配置源选项。

配置源能够根据 (group, option) 键从支持键值映射的外部来源(例如 INI 文件、键值存储、密钥存储等)获取配置值。

abstract get(group_name, option_name, opt)

从组中返回选项的值。

参数:
  • group_name (str) – 组的名称。

  • option_name (str) – 选项的名称。

  • opt (Opt) – 选项定义。

返回值:

一个元组 (value, location),其中 value 是选项值,或者如果 (group, option) 不存在于来源中,则为 oslo_config.sources._NoValue,location 是一个 LocationInfo。

class oslo_config.sources.ConfigurationSourceDriver

基类: object

oslo.config 的后端驱动程序选项。

对于在 config_source 中列出的每个组名,ConfigurationSourceDriver 负责创建一个新的 ConfigurationSource 实例。要使用的适当驱动程序类是根据 driver 选项在 config_source 中列出的每个组内选择的,并通过 stevedore 管理的入口点使用 oslo.config.driver 命名空间加载。

[DEFAULT]
config_source = source1
config_source = source2
...

[source1]
driver = remote_file
...

[source2]
driver = castellan
...

每个特定的驱动程序都知道所有可用的选项,以便使用 open_source_from_opt_group() 方法中给定的组中的值正确地实例化 ConfigurationSource,并且能够通过 list_options_for_discovery() 方法生成示例配置。

abstract list_options_for_discovery()

返回可用于配置新来源的选项列表。

驱动程序应在此方法中通告所有受支持的选项,以便 oslo-config-generator 进行示例生成。

有关如何实现此方法的示例,可以查看 oslo_config.sources._uri.URIConfigurationSourceDriver 中的 remote_file 驱动程序。

返回值:

ConfigurationSource 的受支持选项列表。

abstract open_source_from_opt_group(conf, group_name)

返回一个打开的配置源。

使用 group_name 查找新源的配置设置,然后打开配置源并返回它。

如果无法打开源,则引发适当的异常。

参数:
  • conf (ConfigOpts) – 用于查找配置值的活动配置选项处理程序。

  • group_name (str) – 存储源选项的配置选项组名。

返回值:

ConfigurationSource 的一个实例