olso.config的簡單使用

一 簡介

  • openstack項目越來越多,在Grizzly版本之前,每個項目都要實現一套處理配置文件的代碼。每個項目的源碼中都可以找到 openstack/common/cfg.py iniparser.py這兩個文件。當然,這些不同項目之間的cfg.py等文件很大可能是copy-and-paste分分鐘來搞定。這種情況肯定無法被大神忍受,最終,社區決定改變這一切,提出了Oslo項目。Oslo項目的宗旨是提供一系列OpenStack Projects共享的基礎庫。我們接觸的最多的爲oslo.config這個庫,要來處理程序命令行參數和配置文件。

  • oslo.config就是其中一個被廣泛使用的庫,該項工作的主要目的就是解析OpenStack中命令行(CLI)或配置文件(.conf)中的配置信息

二 olso.config用法

2.1 使用步驟

  • 正確配置服務配置文件
  • 在要使用的配置文件模塊中聲明這個模塊將會用到哪個配置項,包括配置項名稱、默認值、數據類型、說明等
  • 創建該對象的類充當配置管理器,這個對象會成爲配置文件中配置項的容器
  • 註冊要用到的配置項,這個過程會解析配置文件,從裏面提取我們的配置項實際設定的值
  • *

2.2 用法

  • 假設有一個配置文件叫做xxx.conf,裏面內容如下
    # 用來簡單測試的文件
    [DEFAULT]
    bind_host = 0.0.0.0
    bind_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=‘xxx.conf‘)
  • 到這裏,就可以使用了
bind_port = CONF.bind_port
bind_host = CONF.bind_host

三 研究olso.config源碼(待續)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章