oslo.config
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支持的一些类型
oslo.config的更多相关文章
- Openstack oslo.config【一】
OpenStack的项目貌似越来越多了,在Grizzly版之前,每个项目都得实现一套处理配置文件的代码.在每个项目的源码中基本上都可以找到openstack/common/cfg.py,inipars ...
- OpenStack配置解析库oslo.config的使用方法
OpenStack的oslo项目旨在独立出系统中可重用的基础功能,oslo.config就是其中一个被广泛使用的库,该项工作的主要目的就是解析OpenStack中命令行(CLI)或配置文件(.conf ...
- OpenStack开发基础-oslo.config
The cfg Module cfg Module来自于OpenStack中的重要的基础组件oslo.config,通过cfg Module能够用来通过命令行或者是配置文件来配置一些options,对 ...
- openstack oslo.messaging库
openstack oslo.messaging库 2017年04月13日 22:13:25 li_101357 阅读数:1383 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- oslo.messaging
oslo.messaging oslo.messaging库为OpenStack各个项目使用RPC和事件通知(Event Notification)提供了一套统一的接口.代码库位于https://gi ...
- OpenStack Keystone安装部署流程
之前介绍了OpenStack Swift的安装部署,采用的都是tempauth认证模式,今天就来介绍一个新的组件,名为Keystone. 1. 简介 本文将详细描述Keystone的安装部署流程,并给 ...
- OpenStack Hacker养成指南
0 阅读指南 希望本文能够解开你心中萦绕已久的心结,假如是死结,请移步到 https://wiki.openstack.org/wiki/Main_Page 学习OpenStack其实就是学习各种Py ...
- oslo_config中的DuplicateOptError坑
前言: 最近在重写公司的Cinder Driver,我们driver是按照OpenStack的要求,依赖一个叫oslo_config的一个包.这个包的作用就是让driver申明所依赖的选项(可以来自文 ...
- OpenStack 单元测试
OpenStack 单元测试 OpenStack开发——单元测试 本文将介绍OpenStack单元测试的部分.本文将重点讲述Python和OpenStack中的单元测试的生态环境. openstack ...
随机推荐
- HDU 1073 Online Judge (字符串处理)
题目链接 Problem Description Ignatius is building an Online Judge, now he has worked out all the problem ...
- python初步学习-python 模块之 json
json 模块 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写.一般API返回的数据大多是 JSON.XML,如果返回JSON的话,将获取 ...
- [转]编译防火墙——C++的Pimpl惯用法解析
impl(pointer to implementation, 指向实现的指针)是一种常用的,用来对“类的接口与实现”进行解耦的方法.这个技巧可以避免在头文件中暴露私有细节(见下图1),因此是促进AP ...
- 【黑客免杀攻防】读书笔记17 - Rootkit基础
1.构建Rootkit基础环境 1.1.构建开发环境 VS2012+WDK8 1.2.构建基于VS2012的调试环境 将目标机.调试机配置在同一个工作组内 sVS2012配置->DRIVER-& ...
- BZOJ4840 NEERC2016 Binary Code
Problem BZOJ Solution 可能是因为快要省选了,所以最近更博的频率好像高了点_(:зゝ∠)_ 每个字符串最多有两个状态,然后要满足一些依赖关系,考虑2sat.可以先把字符串的结束节点 ...
- SLF4J multiple
"C:\Program Files\Java\jdk1.8.0_65\bin\java" -Didea.launcher.port=7537 "-Didea.launch ...
- /touch滑屏事件
//touch滑屏事件 var windowHeight = $(window).height(), $body = $("body"); $body.cs ...
- virtualenv,virtualenvwrapper安装及使用
1.安装 # 安装: (sudo) pip install virtualenv virtualenvwrapper # centos7下 pip install virtualenv virtual ...
- The Art Of Computer Programming: 1.1
The Art Of Computer Programming: 1.1 */--> div.org-src-container { font-size: 85%; font-family: m ...
- qt 问题及处理
1. 包依赖问题 在windows平台时,通过microsoft process Explorer可以查看所以来的dll.并将这些dll复制到应用程序目录,加上qt.conf就可以使用了. [Path ...