使用 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。