Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

emit-change Template (SLAX and XSLT) and emit_change (Python)

语法

Python 语法

SLAX 语法

XSLT 语法

描述

对配置生成持续或瞬时更改。

参数

content

持续或瞬时更改的内容。在 SLAX 和 XSLT 脚本中,这与 dot。Python 脚本必须包含完整的配置路径,表示格式化为 XML 字符串的所有配置层次结构级别。

dot

XPath 表达式,用于指定更改的层级。默认位置是脚本当前正在评估的 XML 层次结构中的位置。在调用模板时,可以通过为 dot SLAX 脚本中的参数或 select XSLT 脚本中的参数属性dot添加有效的 XPath 表达式来更改默认值。

format

通过 Python 提交脚本加载的配置数据的格式。唯一支持的格式是 xml

message

CLI 中显示的警告消息,通知用户配置已更改。消息参数会自动包含编辑路径,编辑路径默认为 XML 层次结构中的当前位置。要更改默认编辑路径,请为 dot SLAX 脚本中的参数或 select XSLT 脚本中的参数属性 dot 指定有效的 XPath 表达式。

name

允许您引用当前的元素或属性。 name() XPath 函数返回元素或属性的名称。参数 name 默认为值 name($dot),这是中 dot 元素的名称(其默认为“ . ,即当前元素)。

tag

要生成的更改类型。指定 'change' 以生成 永久更改,或指定 'transient-change' 以生成 瞬时更改。如果在 SLAX 和 XSLT 脚本中省略参数,则 jcs:emit-change 模板默认会生成永久更改。

使用示例

以下示例演示了如何在 XSLT 提交脚本中调用jcs:emit-change模板:

提交包括一个或多个启用了 IS-IS 但未在层次结构级别包含[edit interfaces interface-name unit logical-unit-number]语句family mpls的配置时,模板jcs:emit-change会将该family mpls语句添加到配置中并生成以下 CLI 输出:

模板 content 参数 jcs:emit-change 提供了一种更简单的方法,用于指定对配置的更改。例如,考虑以下代码:

在 SLAX 和 XSLT 脚本中 jcs:emit-change ,模板将 content 参数转换为 <change> 请求。请求 <change> 将提供的部分配置内容插入当前 上下文节点的完整层次结构中。因此,模板将 jcs:emit-change 参数中的 content 层次结构信息更改为以下代码:

如果需要瞬时更改, tag 则可以将参数作为 “”transient-change 传入,如下所示:

要使 XSLT 能够区分字符串 “”和名为transient-changetransient-change” 的节点的内容,需要额外的引号。如果更改相对于上下文节点以外的某个节点,则可以将参数dot设置为该节点,如以下示例中所示,其中上下文设置为[edit chassis]层次结构级别:

以下 Python 提交脚本会生成对配置的永久更改: