Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

配置事件策略以将参数传递至事件脚本

当事件策略调用事件脚本时,策略可以将参数传递至脚本。以下部分概述如何在事件策略中配置参数并使用事件脚本中的参数:

在事件策略中配置事件脚本参数

您可配置事件策略传递到层次结构下event-script filename arguments策略语句中then事件脚本的参数。您可以为每个调用的事件脚本配置任意数量的参数。

您将脚本的参数包括为名称/值对。该参数值可包含包含有关触发事件或其他已接收事件的信息的变量。然后,事件脚本可在执行过程中参考此信息。您可以使用以下表单的变量:

  • {$$.attribute-name}—双美元标志 ($$) 符号表示触发策略的事件。与属性名称结合使用时,变量解析为与触发事件关联的属性的值。例如, {$$.interface-name} 解析与触发事件关联的接口名称。

  • {$event.attribute-name}- 带有活动名称 ($event) 符号的单美元标志表示与之匹配 event的最新事件。与属性名称结合使用时,变量解析为与该事件关联的属性的值。例如, {$COSD_CHAS_SCHED_MAP_INVALID.interface-name} 解析与事件过程缓存的最新 COSD_CHAS_SCHED_MAP_INVALID 事件相关的接口名称。

对于给定事件,您可以查看可通过发出 help syslog event 命令来参考的事件属性列表。

例如,在以下命令输出中,尖括号文本 (< >) 显示事件属性 COSD_CHASSIS_SCHEDULER_MAP_INVALID

查看事件属性列表的另一种方式是在层次结构级别上[edit event-options policy policy-name]发出set attributes-match event?配置模式命令。

例如,在以下命令输出中,event.attribute列表显示error-message事件的cosd_chassis_scheduler_map_invalid属性和interface-name属性:

在本 set 命令中,事件名称和问号 (?) 之间没有空间。

要查看可参考的所有事件属性的列表,请在层次结构级别发出set attributes-match ?[edit event-options policy policy-name]配置模式命令。

使用事件脚本中的参数

当事件策略调用事件脚本时,事件脚本可以参考策略传递的任何参数。事件脚本中的参数名称必须与配置中层次结构下 [edit event-options policy policy-name then event-scripts filename arguments] 为该事件脚本配置的参数的名称匹配。

要在 SLAX 或 XSLT 事件脚本中使用参数,必须为每个参数声明。事件脚本将每个脚本参数的值分配给同一名称的相应参数,然后可在整个脚本中参考。

XSLT 语法

SLAX 语法

要在 Python 事件脚本中使用参数,您可以使用 Python 语言中的任何有效方法。以下示例使用 Python argparse 模块来处理脚本参数。对于传递到脚本的每个论点,都必须包含一个 parser.add_argument 语句。

Python 语法