安裝
所有oslo_xxx包在PyPI上的名稱都是oslo.xxx
安裝oslo.confg
pip install oslo.confg
選項類型
聲明選項時需要指定選項的類型,oslo.config庫提供了以下常用的類型,用戶也可以自定義類型
范例
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
注意: 如果多個配置文件的配置項重名魁淳,后解析的會覆蓋先解析的!
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')