使用 Junos XML 协议在更改其他更改的同时更改配置元素的激活状态
在与运行 Junos OS 的设备的 Junos XML 协议会话中,客户端应用程序可以将适当的属性或运算符与 inactive or active 属性或运算符组合在一起,在对元素执行其他操作(删除除外)的同时停用或重新激活元素。有关激活或停用元素的基本信息,请参阅 使用 Junos XML 协议更改配置元素的激活状态。
要定义要停用或激活的元素,客户端应用程序包括其父级别的基本标记元素或配置语句,如使用 Junos XML 协议创建、修改或删除配置元素中所述。使用 Junos XML 标记元素表示元素时,应用程序inactive="inactive"会在标记中包含 <load-configuration> or active="active" 属性以及其他适当的属性。使用格式化的 ASCII 文本时,应用程序会将 or active 运算符与其他运算符组合inactive在一起。
有关说明,请参阅以下部分:
替换元素并设置其激活状态
要替换(完全重新配置)元素并同时停用或激活该元素,客户端应用程序需要包含表示元素所有特征的标记元素或语句(有关定义元素的语法的完整信息,请参阅 使用 Junos XML 协议替换配置数据中的元素).客户端应用程序使用以下示例中讨论的属性和运算符来指示要替换和激活或停用的元素。
将 Junos XML 标记元素用于替换元素
如果使用 Junos XML 标记元素来表示元素,则客户端应用程序会在标记元素中包含<load-configuration>该action="replace"属性:
<rpc>
<!-- For a file -->
<load-configuration action="replace" url="file"/>
<!-- For a data stream -->
<load-configuration action="replace">
<!-- Junos XML tag elements -->
</load-configuration>
</rpc>
在替换元素的开始标记中,应用程序包括两个属性 - replace="replace" 属性和 inactive="inactive" or active="active" 属性。它包括为该元素定义的所有子元素的标记元素。在下面,标识符标记元素称为 <name>:
<configuration>
<!-- opening tag for each parent of the element -->
<element replace="replace" (inactive="inactive" | active="active")>
<name>identifier</name> <!-- if element has an identifier -->
<!-- tag elements for each child of the element -->
</element>
<!-- closing tag for each parent of the element -->
</configuration>
对替换元素使用格式化的 ASCII 文本
如果使用格式化的 ASCII 文本来表示元素,客户端应用程序 action="replace"将在标记中包含 <load-configuration> and format="text" 属性:
<rpc>
<!-- For a file -->
<load-configuration action="replace" format="text" url="file"/>
<!-- For a data stream -->
<load-configuration action="replace" format="text">
<!-- formatted ASCII configuration statements -->
</load-configuration>
</rpc>
应用程序将 or active: 运算符放在新元素上方的行上,并将replace:运算符直接放在inactive:新元素之前。它包括它为元素的所有子元素定义的所有子语句:
<configuration-text>
/* statements for parent levels */
/* For an object with an identifier */
(inactive | active):
replace: object identifier {
/* Child configuration statements */
}
/* For a hierarchy level or object without an identifier */
(inactive | active):
replace: element {
/* Child configuration statements */
}
/* closing braces for parent levels */
</configuration-text>
对元素重新排序并设置其激活状态
若要对有序列表中的元素重新排序并同时停用或激活它,应用程序会将引用元素的属性和标识符属性与 inactive or active 属性组合在一起insert。在下文中,移动元素的标识符标记元素称为 <name>。开始标记显示在两行上,仅用于清晰易读:
<configuration>
<!-- opening tag for each parent of the set -->
<ordered-set insert="( before | after )" reference-identifier="value"
(inactive="inactive" | active="active")>
<name>identifier-for-moving-object</name>
</ordered-set>
<!-- closing tag for each parent of the set -->
</configuration>
当使用格式化 ASCII 文本表示配置数据时,重新排序操作不可用。
有关对元素重新排序的完整信息,请参阅 使用 Junos XML 协议对配置数据中的元素重新排序。
重命名对象并设置其激活状态
若要重命名对象(更改其一个或多个标识符的值)并同时停用或激活它,应用程序会将新名称的属性和标识符属性与 inactive or active 属性组合在一起rename。
如果对象有一个标识符(此处称为 <name>),则语法如下(开始标记显示在两行上,仅用于易读):
<configuration>
<!-- opening tag for each parent of the object -->
<object rename="rename" name="new-name" \
(inactive="inactive" | active="active")>
<name>current-name</name>
</object>
<!-- closing tag for each parent of the object -->
</configuration>
如果对象有多个标识符,并且只有一个标识符在更改,则语法如下(开始标记显示在多行上,仅用于易读):
<configuration>
<!-- opening tag for each parent of the object -->
<object rename="rename" changing-identifier="new-name" \
unchanging-identifier="current-name" \
(inactive="inactive" | active="active")>
<changing-identifier>current-name</changing-identifier>
<unchanging-identifier>current-name</unchanging-identifier>
</object>
<!-- closing tag for each parent of the object -->
</configuration>
当使用格式化 ASCII 文本表示配置数据时,重命名操作不可用。
有关重命名元素的完整信息,请参阅 使用 Junos XML 协议重命名配置数据中的对象。
示例:替换对象并停用它
以下示例说明如何替换名为 的G3组的候选配置中的层次结构级别信息[edit protocols bgp],并停用该组,以便在提交候选组时不会在实际配置中使用它:
下面的示例演示如何使用格式化的 ASCII 文本进行相同的 更改: