最近在看NOVA源代码,发现经常用到Oslo.config这个组件。Oslo.config组件,主要是来负责CLI和CONF配置项的解析。
在老版本之前,这个功能都是是放在cfg模块中的,但是后来社区老大决定将OpenStack中的一些共性剥离出来,统一放在Oslo模块中。
估计以后如果要开发其他的OpenStack组件,都得用到这个模块了,所以今天重点来学习一下。
可能讲的比较粗浅,具体可以去oslo.config官方文档细细的研究。
下面说明一下用法:
在Oslo的cfg模块载入的时候(from Oslo.config import cfg),会自动运行模块中的载入代码CONF = ConfigOpts(),创建一个全局的配置项管理类。
和许多Conf配置模块一样,Oslo.conf在使用时,需要先声明配置项的名称、定义类型、帮助文字、缺省值等,然后再按照事先声明的配置项,对CLI或conf中的内容进行解析。
配置项声明结构示例如下(官方文档例子):
最后通过ConfigOpts类的__call()__方法,执行配置项的解析以及从CLI或配置文件读取配置项的值。