目录
IntOpt(name, min=None, max=None)
FloatOpt(name, min=None, max=None)
ListOpt(name, item_type=None, bounds=None)
PortOpt(name, min=None, max=None, choices=None)
HostAddressOpt(name, version=None)
URIOpt(name, max_length=None, schemes=None)
SubCommandOpt(name, dest=None, handler=None,title=None, description=None, help=None)
OptGroup(self, name, title=None, help=None,dynamic_group_owner='',driver_option='')
一、oslo_config.cfg的主要作用
- 解析命令行
- 解析配置文件
二、oslo_config.cfg注册opt
1.定义opt的语法
-
通用定义配置项的参数
name:option的名称,对应conf文件section下各个option的名称;
type:option值的数据类型,必须是oslo_config.types模块下不同数据类型对应的类的实例。能够接收string,返回转换后且经过验证的值;
dest:CONF中相对应属性名;
short:命令行中option名称的单字母缩写;
default:option的默认值;
positional:是否为命令行中固定位置的argument;
metavar:--help中显示的argument信息;
help:此option的使用帮助信息;
secret:是否不在log中显示相关信息;
required:是否值不能为空;
deprecated_name:option注册时,将覆写的相关option的名称。类似别名;
deprecated_group:别名所在的section,如果不填则代表同option所在一样的section;
deprecated_opts: option注册时,将要覆写的别名信息列表,元素为oslo_config.cfg.DeprecatedOpt类实例;
deprecated_for_removal:标明是否在未来版本中,此项option将会被废弃;
deprecated_reason:对于此项option在未来版本中被废弃的解释;
deprecated_since:标明在哪个未来版本中此项option将会被废弃;
mutable:是否此option可以被重载;
advanced:是否此option是一个高级选项,默认不被大部分用户使用。
-
StrOpt
StrOpt的参数如下,此类继承于Opt类,因此除了下列选项,上面的通用配置项中的参数也可以在此类型中使用。
用法:
StrOpt(name, choices=None, quotes=None,regex=None, ignore_case=None, max_length=None, **kwargs)
参数:
choices:option的可选值,[1,2,3],与regex不可同时存在;
quotes:如果为True,则传入的string如果被单引号或双引号包围,则会去掉引号。如果引号不成对,则会raise错误。在string为容器结构如列表等时比较有用。默认为False;
regex:option值由正则表达式匹配出,与choices不可同时存在;
ignore_case:如果为True,则对大小写不敏感;
max_length:option值的长度最大值;
type_name:标明的option值类型的字符串,默认为'string value'
示例
配置
[zpp]
z=4
代码
from oslo_config import cfg,types
conf = cfg.CONF
cli_opt = cfg.StrOpt('z', choices=['4', '5'])
cfg.CONF.register_group(cfg.OptGroup('zpp'))
cfg.CONF.register_opt(cli_opt, 'zpp')
if __name__ == "__main__":
import sys
conf(default_config_files=['/root/neutron.conf'])
print conf.zpp.z #4,当z的值不在choices中会抛出异常
-
BoolOpt(name)
#参数
name:配置项的名称或者参数名称
#示例
##配置
[zpp]
z=True
##代码
from oslo_config import cfg,types
conf = cfg.CONF
cli_opt = cfg.BoolOpt('z')
cfg.CONF.register_group(cfg.OptGroup('zpp'))
cfg.CONF.register_opt(cli_opt, 'zpp')
if __name__ == "__main__":
import sys
conf(default_config_files=['/root/neutron.conf'])
print conf.zpp.z #True
print type(conf.zpp.z) #bool对象
-
IntOpt(name, min=None, max=None)
#参数
name: the option's name
min: 最小值 #当配置的值小于此值时,会抛出异常
max: 最大值 #当配置的值大于此值时,会抛出异常
#示例
##配置
[zpp]
z=8
##代码
from oslo_config import cfg,types
conf = cfg.CONF
cli_opt = cfg.IntOpt('z', min=1, max=65535)
cfg.CONF.register_group(cfg.OptGroup('zpp'))
cfg.CONF.register_opt(cli_opt, 'zpp')
if __name__ == "__main__":
import sys
conf(default_config_files=['/root/neutron.conf'])
print conf.zpp.z #8
print type(conf.zpp.z) #<type 'int'>
-
FloatOpt(name, min=None, max=None)
#参数
name: the option's name
min: 最小值 #当配