到目前为止,我正在通过 Optparse 将多个参数作为字符串处理,例如:
--update_entities="host_group hostname entity_type entities2monitor"
其中 entity2monitor 具有可变参数,通过(注意[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_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('" "')
哪种方法有效,但有没有更无缝的方法来获取这些参数?