oslo.config
2024-10-01 11:35:44
cfg Module来自于OpenStack中的重要的基础组件oslo.config,通过cfg Module可以用来通过命令行或者是配置文件来配置一些options,
对于每一个选项使用Opt类或者其子类来定义。首先我们来看一个定义option的例子:
#-*- coding:utf-8 -*-
#!/usr/bin/env python
from oslo_config import cfg
from oslo_config import types
import sys #定义组
keystone_authtoken = cfg.OptGroup(name='keystone_authtoken',
title='keystone_authtoken options') #自定义类型和范围
PortType = types.Integer(1,65535) #定义配置文件中的值K/V,可以设置默认值
opts = [
#定义了一个Str类型的选项,名字是bind_host,默认值是0.0.0.0,还有帮助信息,用的是Opt的子类来定义的,所以无需指定类类型,因为类型已经定下来了就是Str类型(StrOpt)
cfg.StrOpt('bind_host', default='0.0.0.0',help='help info'),
#使用Opt类来定义一个选项,因为用的是基类,类型可以是任意的,所以需要使用type字段明确其类型,使用这种方式的好处我觉得就是可以定制类型的值范围
cfg.Opt('bind_port', default=9292,type=PortType),
] keystone_opts = [
cfg.StrOpt('auth_uri', default='http://controller:5000'),
cfg.StrOpt('auth_url', help='Parameter can not be empty'),
cfg.StrOpt('memcached_servers', help='Parameter can not be empty'),
cfg.StrOpt('auth_type', help='Parameter can not be empty')
] #参数不解释-h就能看出参数的意义
cli_opts = [
cfg.BoolOpt('verbose',
short='v',
default=False,
help='Print more verbose output.'),
cfg.BoolOpt('debug',
short='d',
default=False,
help='Print debugging output.'),
] #定义完成参数,必须注册才可以使用
def add_register():
#默认组就default,这里的group指定就是配置文件的[default]这个
CONF.register_opts(opts)
#这么写就可以不用事先定义group自己就会创建,group='keystone_authtoken'
CONF.register_opts(keystone_opts,group='keystone_authtoken') #注册cli命令,可以用-h查看效果
CONF.register_cli_opts(cli_opts) def start():
add_register()
#配置文件路径['glance-api.conf']绝对相对都可以.一般这样用CONF(sys.argv[1:] --config-dir
CONF(default_config_files=['glance-api.conf'])
#CONF(sys.argv[1:]) if __name__ == '__main__':
#
CONF = cfg.CONF
start()
print(CONF.bind_port,CONF.bind_host,CONF.keystone_authtoken.auth_uri)
Opt是父类,其下有很多特定类型的子类。下面是cfg Module支持的一些类型
最新文章
- c/c++的Soap应用
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载
- TNS-01201: Listener cannot find executablen
- android 学习随笔五(界面)
- Laravel 清空配置缓存
- 多项式相乘(C语言)
- css 简单 返回顶部 代码及注释说明
- Linode VPS上架日本东京2号机房,性能速度评测报告(推荐)
- VS2010编译错误 LNK 2019 unresolved external symbol错误解决办法
- CodeSmith系列(三)——使用CodeSmith生成ASP.NET页面
- ViewPagerIndicator+viewpager指示器详解
- ACM常用STL
- LR单用户,重复操作日志
- 饮冰三年-人工智能-linux-08 软件包管理(Python的安装)
- 【洛谷P4289】移动玩具 状压bfs
- Shiro笔记(一)基本概念
- Oracle 错误代码小结
- elementUI和iview兼容么
- streamsets excel 数据处理
- SQL基于时间的盲注过程