使用 Junos XML 协议的配置元素的请求标识符指标
在与运行 Junos OS 的设备的 Junos XML 协议会话中,要请求服务器指示子配置元素是否是其父元素的标识符,客户端应用程序应将属性包括在 junos:key="key"
Junos XML 协议会话的开始<junoscript>
标记中,或者在junos:key="key"
请求标记中包含<get-configuration>
或key="key"
属性:
<junoscript version="version" hostname="hostname" junos:key="key" release="release-code"> <!-- OR --> <rpc> <get-configuration (junos:key | key)="key"> <!-- tag elements for the configuration elements to return --> </get-configuration> </rpc>
有关该标记的详细信息 <junoscript>
,请参阅 启动 Junos XML 协议会话。
当请求标识符指示符时,Junos XML 协议服务器将 junos:key="key"
属性包括在每个标识符的开始标记中。与往常一样,Junos XML 协议服务器将其响应封装在元素中 <rpc-reply>
并 <configuration>
标记 元素。在以下示例中,标识符标记元素称为 <name>
:
<rpc-reply xmlns:junos="URL"> <configuration attributes> <!-- opening tag for each parent of the object --> <!-- For each configuration object with an identifier --> <object> <name junos:key="key">identifier</name> <!-- additional children of object --> </object> <!-- closing tag for each parent of the object --> </configuration> </rpc-reply>
如果请求的输出格式为 JSON,则 Junos XML 协议服务器会添加一个元数据对象,其中包含"junos:key" : "key"
该元数据对象以指示标识符。如果 Junos OS 对象使用该name
标识符,则名称为“@”的元数据对象将被添加为该对象的新成员。如果 Junos OS 对象使用的标识符不是name
,则元数据对象将添加为同项名称/值对,该名称“@”与标识符名称串联。响应包含在和<rpc-reply>
标记元素中<configuration-json>
。
<rpc-reply xmlns:junos="URL"> <configuration-json> { "configuration" : { /* JSON objects for parent levels of the element */ "object" : [ { "@" : { "junos:key" : "key" }, "name" : "identifier", "identifier-name" : "identifier-value", "@identifier-name" : { "junos:key" : "key" }, /* additional data and child objects */ # if any } ] /* closing braces for parent levels of the element */ } } </configuration-json> </rpc-reply>
在以下输出中,静态路由组合 name
和 next-hop
唯一标识:
{ "configuration" : { "routing-options" : { "static" : { "route" : [ { "@" : { "junos:key" : "key" }, "name" : "172.16.0.0/12", "next-hop" : ["198.51.100.1"], "@next-hop" : { "junos:key" : "key" }, "retain" : [null], "no-readvertise" : [null] } ] } } } }
从 Junos OS 16.1 版开始,运行 Junos OS 的设备会使用新的序列化默认实施发出 JSON 格式的配置数据。新的默认值使用“@”符号而非字段名称“属性”来表示属性。
当属性包含在打开标记中时junos:key
,客户端应用可以在标记或打开<get-configuration>
标记中包含<get-configuration/>
<junoscript>
<get-configuration>
一个或多个以下其他属性:
changed
(使用 Junos XML 协议请求配置元素的更改指标)中介绍commit-scripts
(使用 Junos XML 协议请求提交脚本样式的 XML 配置数据中介绍)database
(指定 Junos XML 协议会话中配置信息请求的来源)中介绍了这一点inherit
(可选)groups
和interface-ranges
,如 使用 Junos XML 协议指定配置组和接口范围的输出格式
当请求标识符指示符时,在标记元素中包含<get-configuration>
属性format="text"
(如在 Junos XML 协议会话中为配置数据指定输出格式所述)没有意义。属性junos:key="key"
仅以默认输出格式的 Junos XML 标记输出中显示,并且显示在 JSON 输出中。属性compare
仅生成文本输出,因此当compare
属性包含在标记中<get-configuration>
时,属性junos:key="key"
不会显示在输出中。
以下示例显示了当客户端应用程序为会话发出的开始<junoscript>
标记中包含属性时junos:key="key"
,标识符指示器如何显示在候选配置中的层次结构级别的配置元素[edit interfaces]
上。两个打开<junoscript>
标记显示在多行上,仅为了清晰易读。客户端应用和 Junos XML 协议服务器均未在标记中插入新行字符。此外,为简洁起想,输出仅包含一个接口,即环路接口 lo0。
