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的更多相关文章

  1. Openstack oslo.config【一】

    OpenStack的项目貌似越来越多了,在Grizzly版之前,每个项目都得实现一套处理配置文件的代码.在每个项目的源码中基本上都可以找到openstack/common/cfg.py,inipars ...

  2. OpenStack配置解析库oslo.config的使用方法

    OpenStack的oslo项目旨在独立出系统中可重用的基础功能,oslo.config就是其中一个被广泛使用的库,该项工作的主要目的就是解析OpenStack中命令行(CLI)或配置文件(.conf ...

  3. OpenStack开发基础-oslo.config

    The cfg Module cfg Module来自于OpenStack中的重要的基础组件oslo.config,通过cfg Module能够用来通过命令行或者是配置文件来配置一些options,对 ...

  4. openstack oslo.messaging库

    openstack oslo.messaging库 2017年04月13日 22:13:25 li_101357 阅读数:1383   版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  5. oslo.messaging

    oslo.messaging oslo.messaging库为OpenStack各个项目使用RPC和事件通知(Event Notification)提供了一套统一的接口.代码库位于https://gi ...

  6. OpenStack Keystone安装部署流程

    之前介绍了OpenStack Swift的安装部署,采用的都是tempauth认证模式,今天就来介绍一个新的组件,名为Keystone. 1. 简介 本文将详细描述Keystone的安装部署流程,并给 ...

  7. OpenStack Hacker养成指南

    0 阅读指南 希望本文能够解开你心中萦绕已久的心结,假如是死结,请移步到 https://wiki.openstack.org/wiki/Main_Page 学习OpenStack其实就是学习各种Py ...

  8. oslo_config中的DuplicateOptError坑

    前言: 最近在重写公司的Cinder Driver,我们driver是按照OpenStack的要求,依赖一个叫oslo_config的一个包.这个包的作用就是让driver申明所依赖的选项(可以来自文 ...

  9. OpenStack 单元测试

    OpenStack 单元测试 OpenStack开发——单元测试 本文将介绍OpenStack单元测试的部分.本文将重点讲述Python和OpenStack中的单元测试的生态环境. openstack ...

随机推荐

  1. 【转换】Bean、List、Map、Array、String与JSON字符串的相互转换

    import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.math.BigDecimal; i ...

  2. Computer Vision Resources

    Computer Vision Resources Softwares Topic Resources References Feature Extraction SIFT [1] [Demo pro ...

  3. oracle同义词是什么意思?

    相当于alias,比如把user1.table1 在user2中建一个同义词table1create synonym table1 for user1.table1;这样当我们在user2中查sele ...

  4. Anaconda 安装tensorflow(GPU)

    1.安装 如果是安装CPU模式的tensorflow,只要输入一下代码就可以了 pip3 install tensorflow #python3pip install tensorflow #pyth ...

  5. Spiral Matrix I & II

    Spiral Matrix I Given an integer n, generate a square matrix filled with elements from 1 to n^2 in s ...

  6. 我看到的最棒的Twisted入门教程!

    http://www.douban.com/note/232204441/ http://www.cnblogs.com/sevenyuan/archive/2010/11/18/1880681.ht ...

  7. 我所知道的MVVM框架(转 司徒大大 )

    RubyLouvre commented on 6 Sep 2014   avalon http://avalonjs.github.io/ (使用Object.defineProperties. V ...

  8. CSV 中添加逗号

    由于CSV单元格之间是通过','识别,所以,添加逗号内容,为了防止被当成一个空的单元格,可以将‘,’用双引号括起来,如“,”.

  9. Pytorch多进程最佳实践

    预备知识 模型并行( model parallelism ):即把模型拆分放到不同的设备进行训练,分布式系统中的不同机器(GPU/CPU等)负责网络模型的不同部分 —— 例如,神经网络模型的不同网络层 ...

  10. 空洞卷积(dilated Convolution) 与感受野(Receptive Field)

    一.空洞卷积 空洞卷积是是为了解决基于FCN思想的语义分割中,输出图像的size要求和输入图像的size一致而需要upsample,但由于FCN中使用pooling操作来增大感受野同时降低分辨率,导致 ...