zoukankan      html  css  js  c++  java
  • 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支持的一些类型

     

  • 相关阅读:
    负margin在页面布局中的应用
    2018-05-04 圣杯布局 and 双飞翼布局,display:flex
    vue 动态加载图片路径报错解决方法
    vue 带参数的跳转-完成一个功能之后 之后需要深思,否则还会忘记
    vue项目打包后打开空白解决办法
    css 居中方法
    vue 不用npm下载安装包 该如何引用js
    安装WAMP 及 修改MYSQL用户名 、 密码
    Python 软件开发目录规范
    Python 1-3区分Python文件的两种用途和模块的搜索路径
  • 原文地址:https://www.cnblogs.com/menkeyi/p/7086139.html
Copyright © 2011-2022 走看看