OpenStack配置解析库——oslo.config

  OpenStack的oslo项目旨在独立出系统中可重用的基础功能,oslo.config就是其中一个被广泛使用的库,该项工作的主要目的就是解析OpenStack中命令行(CLI)或配置文件(.conf)中的配置信息。下面先给一个high-level的过程说明一下如何使用这个库。

  OpenStack中配置文件的使用主要有以下几个步骤,

  step1. 正确配置各个服务主配置文件(.conf文件),在各个服务中完成。

  step2. 在要使用到配置文件的模块中声明这个模块将会用到的那些配置项(比如‘auth_host‘...),包括配置项的名称、数据类型、默认值和说明等;

  step3. 创建一个对象,创建该对象的类充当配置管理器,这个对象以后将成为配置文件中配置项的容器。

  step3. 调用刚刚创建了的对象的注册方法,注册我们要用到的配置项,这个过程将会解析配置文件,从里面提取我们所需要的配置项的实际设定值,然后这些配置项的名称就可以作为这个对象的属性直接使用。

  一个完整的实例如下:

  先正确设置配置文件(.conf文件),这里只给出了部分示意。

[DEFAULT]
bind_host = 0.0.0.0bind_port = 9292
...

[rabbit]
host = localhost
port = 5672
use_ssl = False
userid = guest
password = guest
...

  接着在需要查看配置文件信息的模块中这么写:

  先加载库,

from oslo.config import cfg

  接着声明这个模块中将会使用到的配置信息,  

opts = [
    cfg.StrOpt(‘bind_host‘, default=‘0.0.0.0‘),
    cfg.IntOpt(‘bind_port‘, default=9292),
  ]

  然后调用对象,生成容器,

CONF = cfg.CONF

  接着调用对象自己的方法注册目标配置项,目标配置文件将被解析,需要的配置项值将被提取,存储到调用的对象中,属性名就是配置项的名称,属性的值就是配置文件中相应配置项的值。

CONF.register_opts(opts)
CONF(default_config_files=‘glance.conf‘)
 然后就可以使用提取到的配置信息了。
def start(server, app):
    server.start(app, CONF.bind_port, CONF.bind_host)

OpenStack配置解析库——oslo.config

时间: 2024-08-11 09:53:11

OpenStack配置解析库——oslo.config的相关文章

python标准库configparser配置解析器

1 >>> from configparser import ConfigParser, ExtendedInterpolation 2 >>> parser = ConfigParser(interpolation=ExtendedInterpolation()) 3 >>> # the default BasicInterpolation could be used as well 4 >>> parser.read_string

DNS服务原理及区域解析库文件配置

一.DNS服务概述 DNS(Domain Name service或者Domain Name Server)中文名叫做域名服务或者域名服务器, 属于应用层协议, 为C/S架构, 使用TCP/UDP的53号端口. [[email protected] ~]# cat /etc/services | grep "^domain\b" domain 53/tcp # name-domain server domain 53/udp 1.1 DNS服务架构概览 DNS服务架构见下图: 从图中可

openstack配置模块

转载编辑于:http://www.choudan.net/2013/11/27/OpenStack-Oslo.config-%E5%AD%A6%E4%B9%A0(%E4%B8%80).html Oslo 项目提供了一系列的库,我们接触的最多的为oslo.config这个库,用来处理程序命令行参数和配置文件. 一.oslo.config简介 OpenStack在G版之前的几乎每个项目都得拷贝一份cfg.py,iniparser.py两个文件放到openstack/common/目录下,这两个文件主

nsq源码阅读笔记之nsqd(一)——nsqd的配置解析和初始化

配置解析 nsqd的主函数位于apps/nsqd.go中的main函数 首先main函数调用nsqFlagset和Parse进行命令行参数集初始化, 然后判断version参数是否存在,若存在,则打印版本号并退出程序 接下来钩住系统的syscall.SIGINT和syscall.SIGTERM消息,用来阻塞主goroutine防止退出 随后判断config参数是否存在,若存在的话还需进行配置文件的读取, nsq使用toml格式的配置文件,并通过github.com/BurntSushi/toml

Openstack配置文件管理的变迁之路

在管理一个Openstack集群时,如何维护配置文件无疑是其中最艰难和繁琐的任务之一.因为你不仅要面对众多的核心服务(nova,keystone,glance,cinder,etc)的配置文件,还需要管理其相关服务的配置文件(mysql,rabbitmq,bind9,etc).并且在Openstack组件式的设计架构,以及将功能抽象为plugin或是pipeline中的一个filter的灵活配置下,使用者可以根据自己的需求来选择适合自己的架构,或者进行调整. 随手举一些例子: 选择使用nova-

uniVocity-parsers:一款强大的CSV/TSV/定宽文本文件解析库(Java)

uniVocity-parsers 是一个开源的Java项目. 针对CSV/TSV/定宽文本文件的解析,它以简洁的API开发接口提供了丰富而强大的功能.后面会做进一步介绍. 和其他解析库有所不同,uniVocity-parsers以高性能.可扩展为出发点,设计了一套自有架构.基于这套架构,开发者可以构建出新的文件解析器. 1. 概述 作为一名Java开发者,我目前正在参与开发一个Web项目,该项目帮助通信运营商评估当前的网络,并给出解决方案. 在该项目中,CSV文件扮演着至关重要的角色,它是运营

pugixml库之xml解析库

前言: 本文介绍c++编写的xml解析库--pugixml,能解析xml内容,支持xpath解析,同时能够跨linux平台,非常方便. 总结一下使用步骤和简单的使用方法: 使用pugixml库需要三个文件:pugiconfig.h/pugixml.h/pugixml.cpp,可直接从gugixml官网下载,将其加入工程,使用处包含头文件pugiconfig.h/pugixml.h即可. 加载xml文件,使用xml_document类的load_file接口: std::strFile = "..

oslo.config资源

官方文档:http://docs.openstack.org/developer/oslo.config/cfg.html

CocoaPods安装使用及配置私有库

http://www.exiatian.com/cocoapods安装使用及配置私有库/ [转] 从前端到obj-c有小半年了,文章又快有一年没有更新过了,前几天才把域名续费了3年,感叹第一个三年就这样过去了….所以决定不能再像以前那样懒了,每天坚持把自己的学习都记录下来然后有空的时候整理下发布到小站,于是有了obj-c的第一篇. 如何安装? 1.安装ruby环境,添加淘宝ruby镜像 $ gem sources --remove https://rubygems.org///等有反应之后再敲入