一、简介
openstack中负责处理配置的模块是oslo.config,它可以处理配置项和配置文件。通常的配置处理都是如下形式:
from oslo.config import cfg CONF=cfg.CONF
然后用CONF对象注册配置项或者获取配置项。CONF 实际上是一个全局ConfigOpts对象。
二、添加配置项
from oslo.config import cfg from oslo.config import types #扩展配置项类型,进行具体定制 PortType = types.Integer(1, 65535) #定义配置项,cfg模块中预定义了一些配置项类型 common_opts = [ cfg.StrOpt('bind_host', default='0.0.0.0', help='IP address to listen on.'), cfg.Opt('bind_port', type=PortType(), default=9292, help='Port number to listen on.') ] #将配置项注册到全局ConfigOpts对象中 CONF=cfg.CONF CONF.register_opts(common_opts) #注册配置组 conductor_group = cfg.OptGroup(name='conductor', title='Conductor Options') CONF.register_group(conductor_group) #将配置项注册到配置组 CONF.register_opts(common_opts, conductor_group)
三、读取配置文件
from oslo.config import cfg cfg.CONF(xxx,...)
在xxx中用["--config-file","xxx"]指定配置文件,配置文件格式是标准的ini文件格式,其实CONF这个ConfigOpts对象有一个__call__函数,并且其有两个缺省的命令行参数,即–-config-file和-–config-dir。
四、使用配置项
from oslo.config import cfg CONF=cfg.CONF CONF.xxx
可以直接引用xxx配置项的内容,如果是某个组的配置项就先.xxx引用该组,然后.xxx引用该配置项