openstack项目越来越多,在Grizzly版本之前,每个项目都要实现一套处理配置文件的代码。每个项目的源码中都可以找到 openstack/common/cfg.py iniparser.py这两个文件。当然,这些不同项目之间的cfg.py等文件很大可能是copy-and-paste分分钟来搞定。这种情况肯定无法被大神忍受,最终,社区决定改变这一切,提出了Oslo项目。Oslo项目的宗旨是提供一系列OpenStack Projects共享的基础库。我们接触的最多的为oslo.config这个库,要来处理程序命令行参数和配置文件。
oslo.config就是其中一个被广泛使用的库,该项工作的主要目的就是解析OpenStack中命令行(CLI)或配置文件(.conf)中的配置信息
# 用来简单测试的文件
[DEFAULT]
bind_host = 0.0.0.0
bind_port = 9292
[rabbit]
host = localhost
port = 5672
use_ssl = False
userid = guest
password = guest
from oslo.config import cfg
opts = [
cfg.StrOpt(‘bind_host‘, default=‘0.0.0.0‘),
cfg.IntOpt(‘bind_port‘, default=9292),
]
CONF = cfg.CONF
CONF.register_opts(opts)
CONF(default_config_files=‘xxx.conf‘)
bind_port = CONF.bind_port
bind_host = CONF.bind_host