これまで、Optparse を介して複数の引数を文字列として処理していました。
--update_entities="host_group hostname entity_type entities2monitor"
ここで、entities2monitor には可変引数があり、( に注意してください[3:]
)を介してコールバック関数内でそれらを取得します。
host = value.split()
(host_group, hostname, entity_type, entities2monitor) = (host[0], host[1], host[2], host[3:])
しかし、次のフォームのパラメーターをコールバックにフィードする必要がある場合、どのようにアプローチすればよいでしょうか? (私は Optparse 入力文字列を生成する SQL を制御しています)
action_name:スペースで区切られた文字列。(例:
'TEST ACTION'
)ホストグループ:文字列
actions_holder:以下で構成されるリスト:
- condition_type (文字列)
- 条件演算子 (文字列)
- condition_filter (スペース区切りの文字列)
と
- operations_holder:以下で構成されるリスト:
- 操作タイプ: (文字列)
- operation_sendto: (文字列)
例:
--create_action='''TEST ACTION | client_service_platform | "CONDITION_TYPE_TRIGGER_NAME CONDITION_OPERATOR_LIKE Weighted Successful" "CONDITION_TYPE_HOST CONDITION_OPERATOR_EQUAL host01" | "OPERATION_TYPE_MESSAGE userid1" "OPERATION_TYPE_EMAIL userid1" "OPERATION_TYPE_EMAIL userid2"'''
これは私がこれまでに持っているものです。
actions_splits = actions_parameters.split(" | ")
action_name = actions_splits[0]
hostgroup = actions_splits[1]
actions_holder = actions_splits[2].strip('"').split('" "')
operations_holder = actions_splits[3].strip('"').split('" "')
どの種類が機能しますが、これらのパラメーターを取得するよりシームレスな方法はありますか?