使用 Junos XML 协议请求配置元素的更改指示器
在与运行 Junos OS 的设备的 Junos XML 协议会话中,要请求服务器指示自上次提交以来哪些配置元素发生了更改,客户端应用程序将在 request 标记中包含<get-configuration/>
属性changed="changed"
。它将请求括在标记元素中<rpc>
:
<rpc> <get-configuration changed="changed"/> <!-- OR --> <get-configuration changed="changed"> <!-- tag elements for the configuration elements to return --> </get-configuration> </rpc>
有关要包含在标记元素中的 <get-configuration>
标记元素的信息,请参阅 指定在 Junos XML 协议会话中返回的配置数据的范围。
配置源确定哪些元素被标记为已更改。当 database="candidate"
标记中包含 <get-configuration/>
属性或省略属性 database
时,将比较候选配置与活动配置。上次提交操作后添加到候选配置的元素会用 junos:changed="changed"
属性标记。当 database="committed"
标记中包含 <get-configuration/>
属性时,活动配置会与第一个回滚配置进行比较。最近提交添加到活动配置中的元素会标有属性 junos:changed="changed"
。
Junos XML 协议服务器指示哪些元素已更改,在已更改配置元素的路径中,每个父标记元素的打开标记中都会包含 junos:changed="changed"
属性。如果已更改的配置元素由单个(空)标记表示,则 junos:changed="changed"
属性会出现在标记中。如果已更改的元素由容器标记元素表示,则 junos:changed="changed"
属性会出现在打开容器标记中,也显示在容器标记元素括起来的每个子标记元素的打开标记中。
Junos XML 协议服务器将响应封装在和<configuration>
标记 元素中<rpc-reply>
。有关打开<configuration>
标记中的标准属性的信息,请参阅指定 Junos XML 协议会话中配置信息请求的来源。
<rpc-reply xmlns:junos="URL"> <configuration standard-attributes junos:changed="changed"> <!-- opening-tag-for-each-parent-level junos:changed="changed" --> <!-- For each changed element, EITHER --> <element junos:changed="changed"/> <!-- OR --> <element junos:changed="changed"> <first-child-of-element junos:changed="changed"> <second-child-of-element junos:changed="changed"> <!-- additional children of element --> </element> <!-- closing-tag-for-each-parent-level --> </configuration> </rpc-reply>
如果请求的输出格式为 JSON,则 Junos XML 协议服务器将属性包含在 "junos:changed" : "changed"
上述相同元素的属性列表中,并将响应括在一起 <configuration-json>
并 <rpc-reply>
标记元素。
从 Junos OS 16.1 版开始,运行 Junos OS 的设备会使用新的序列化默认实施发出 JSON 格式的配置数据。新的默认值使用“@”符号而非字段名称“属性”来表示属性。
提交操作成功后,Junos XML 协议服务器将从所有标记元素中移除该 junos:changed="changed"
属性。但是,如果在提交过程中生成警告,则不会移除该属性。在这种情况下,属性 junos:changed="changed"
会出现在提交之前更改的标记元素上,以及提交后更改的标记元素上。
提交时间警告的一个示例是,消息解释配置元素在重新启动设备之前不会实际应用。警告显示在 Junos XML 协议服务器返回的标记字符串中,以确认提交成功,并包含在标记元素中 <xnm:warning>
。
要从提交前更改的元素中移除 junos:changed="changed"
属性,客户端应用程序必须采取任何必要的措施消除警告原因,然后再次提交配置。
该changed
属性可以与标记或打开<get-configuration>
标记中的<get-configuration/>
一个或多个其他属性组合:
database
,详述于 指定 Junos XML 协议会话中配置信息请求的来源。请求候选配置或活动配置中的更改指标。inherit
以及(可选groups
interface-ranges
)和,如使用 Junos XML 协议指定配置组和接口范围的输出格式。junos:key
,详述 使用 Junos XML 协议请求配置元素的标识符指示器。
将属性与format="text"
属性或与仅生成文本输出的属性组合changed
在一起compare
是不有意义的。属性junos:changed="changed"
仅以默认输出格式的 Junos XML 标记输出中显示,并且显示在 JSON 输出中。当commit-scripts="view"
属性包含在标记中<get-configuration>
时,属性junos:changed="changed"
会自动包含在输出中,并且您无需在请求中<get-configuration>
显式包含此属性。
应用程序还可以在 changed
请求标识符指示符(如 使用 Junos XML 协议为配置元素请求标识符指标中所述)后包括属性。
以下示例说明如何在候选配置中的层级请求配置元素的 [edit system syslog]
更改指示器。输出表示,自上次提交以来已配置了名为 interactive-commands 的 日志文件。
