如何在没有register_opts的情况下使用oslo_config加载配置文件?

时间:2016-07-03 07:18:17

标签: oslo

在研究了oslo_config的用法后,我发现如果我想在配置文件(test.conf)中使用少量配置值,我需要在程序中声明这些选项并注册它们,如下所示。

test.conf

[test]
enable = True
usr_name = ‘Joe’
hobby = [‘Compute’, ‘python’, ‘OpenStack’]

test.py

from oslo.config import cfg 
opt_group = cfg.OptGroup(name='test', title='Test example') 
test_opts = [
   cfg.BoolOpt('enable',default=False),
   cfg.StrOpt('user_name',default='No Name',help=('Name of user')),
   cfg.ListOpt('hobby',default=None,help=('List of hobby'))     
]

if __name__ == "__main__":
    CONF = cfg.CONF
    CONF.register_group(opt_group)
    CONF.register_opts(test_opts, opt_group)
    CONF(default_config_files=["/etc/test/test.conf"])

    print CONF.test.enable
    print CONF.test.user_name
    print CONF.test.hobby

为什么我不能在配置文件(test.conf)中定义这些配置并加载配置文件以使用它们?感谢。

1 个答案:

答案 0 :(得分:0)

实际上你不能。配置文件和命令行用于解析选项的值,你想要做的是注册模式,这不仅仅是解析值,还有助于文本,数据类型和验证器更复杂。read in detail。顺便说一下,你也可以在这里提问:Ask Openstack