Oslo Config (oslo.config) 使用

安裝

所有oslo_xxx包在PyPI上的名稱都是oslo.xxx
安裝oslo.confg

pip  install   oslo.confg

選項類型

聲明選項時需要指定選項的類型,oslo.config庫提供了以下常用的類型,用戶也可以自定義類型

圖片.png

范例

olso_test.py :

# -*- coding: utf-8 -*-

import sys
from oslo_config import cfg
from oslo_config import types

# 自定義端口類型,范圍在(1, 65535)
PortType = types.Integer(1, 65535)

opts = [
    cfg.StrOpt('ip',
               default='127.0.0.1',
               help='IP address to listen on.'),
    cfg.Opt('port',
            type=PortType,
            default=8080,
            help='Port number to listen on.')
]

# 注冊選項
cfg.CONF.register_opts(opts)

# group database
database = cfg.OptGroup(name='database',
                      title='group database Options')
opts = [
    cfg.StrOpt('connection',
               default='',
               help='item connection in group database.')
]
cfg.CONF.register_group(database)
cfg.CONF.register_opts(opts, group=database)

# 指定配置文件
cfg.CONF(default_config_files=['config.conf'])

print('DEFAULT: ip=%s  port=%s' %(cfg.CONF.ip,cfg.CONF.port))
print('database: connection=%s' %(cfg.CONF.database.connection))

config.conf :

[DEFAULT]
ip = 8.8.8.8
port = 9090

[database]
connection = mysql+pymysql://root:secret@127.0.0.1/cinder?charset=utf8

圖片.png

注意: 如果多個配置文件的配置項重名,后解析的會覆蓋先解析的!

cinder里使用:

        # 讀取cinder.conf中配置項
        config = ConfigParser.ConfigParser()
        config.read(self.PATH_LOCAL_CINDER_CONFIG)
        if not config.has_section('backend_storage'):
            raise exception.CinderException(message='The cinder.conf file is not config the backend_storage items.')
        self.main_node_ip = config.get('backend_storage', 'main_node_ip')

參考

Openstack 之 oslo.config

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容