一、简介
  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引用该配置项

参考文档:

http://www.choudan.net/2013/11/27/OpenStack-Oslo.config-%E5%AD%A6%E4%B9%A0(%E4%B8%80).html 

http://docs.openstack.org/developer/oslo.config/