これは 4 ステップのプロセスです。パラメータを読み取って出力する例を示しますが、このプロセスを参照することで、パラメータを変数に割り当てたり、やりたいことを実行したりできます。
.conf ファイルを作成します (例: params.conf)
#Example Conf File
[DEFAULT]
param1_int = 42
param2_str = "You read my data :)"
param3_list = 1,2,3
param4_float = 3.14
次のコードを __init__ メソッドに追加します。ryu に付属する simple_switch_13.py に対してこれを行いました。
from ryu import cfg
:
:
class SimpleSwitch13(app_manager.RyuApp):
def __init__(self, *args, **kwargs):
super(SimpleSwitch13, self).__init__(*args, **kwargs)
:
CONF = cfg.CONF
CONF.register_opts([
cfg.IntOpt('param1_int', default=0, help = ('The ultimate answer')),
cfg.StrOpt('param2_str', default='default', help = ('A string')),
cfg.ListOpt('param3_list', default = None, help = ('A list of numbers')),
cfg.FloatOpt('param4_float', default = 0.0, help = ('Pi? Yummy.'))])
print 'param1_int = {}'.format(CONF.param1_int))
print 'param2_str = {}'.format(CONF.param2_str))
print 'param3_list = {}'.format(CONF.param3_list))
print 'param4_float = {}'.format(CONF.param4_float))
スクリプトを実行
ryu-manager paramtest.py --config-file [PATH/TO/FILE/params.conf]
利益
回答をまとめるときに以下を参照しました。詳細を提供できます (この問題に遭遇する前に聞いたことのない oslo.config など)。
oslo.config の詳細: http://www.giantflyingsaucer.com/blog/?p=4822
この問題に関するリュウのメール チェーン: https://sourceforge.net/p/ryu/mailman/message/33410077/