使用 Junos XML 协议锁定、解锁或创建候选配置的专用副本
当客户端应用程序请求或更改配置信息时,它可以使用以下一种方法访问候选配置:
锁定候选配置,从而阻止其他用户或应用程序更改共享配置数据库,直到应用程序释放锁(相当于 CLI
configure exclusive
命令)。创建候选配置的专用副本,使应用程序可在提交专用副本之前查看或更改配置数据,而不会影响候选配置或活动配置(等同于 CLI
configure private
命令)。在不锁定的情况下更改候选配置。我们不推荐此方法,因为可能会与同时编辑共享配置数据库的其他应用程序或用户所做的更改冲突。
如果应用程序只是请求配置信息,而不是更改信息,则不需要锁定配置或创建专用副本。应用程序可立即开始请求信息。但是,如果返回的信息在会话期间必须不会更改,那么锁定配置是适当的。专用副本的信息确保不会更改,但如果其他用户或应用程序更改候选配置,可能会从候选配置中默认配置。
对已锁定常规候选配置和私有副本的操作的限制和交互与用于配置和命令CLI configure exclusive
configure private
相同。有关详细信息,请参阅 使用 Junos XML 协议和 CLI 用户指南 提交配置的专用副本。
有关锁定和解锁候选配置或创建专用副本的信息,请参阅以下章节:
锁定候选配置
要锁定候选配置,客户端应用程序会发出 <lock-configuration/>
标记内的 <rpc>
标记。
<rpc> <lock-configuration/> </rpc>
锁定候选配置可以防止其他用户或应用程序更改候选配置,直到锁定释放。这等同于 CLI configure exclusive
命令。建议在进行更改之前锁定配置,特别是在授权多个用户更改配置的设备上。提交操作适用于候选配置中所有更改,不仅仅是请求提交的用户或应用程序所做的更改。允许多个用户或应用程序同时进行更改可能会导致意想不到的结果。
该Junos XML 协议在报考者之间返回一个开始和结束标记,以确认其锁定了 <rpc-reply>
</rpc-reply>
候选配置。
<rpc-reply xmlns:junos="URL"> </rpc-reply>
如果 Junos XML 协议服务器无法锁定配置,则标记会包含一个解释故障 <rpc-reply>
<xnm:error>
原因的元素。故障原因可能包括:
另一用户或应用程序已锁定候选配置。错误消息报告用户或应用程序的登录身份。
候选配置已包含尚未提交更改。要提交更改,请参阅 使用默认 XML 协议提交Junos配置 。要丢弃未提交更改,请参阅 使用 Junos XML 协议替换配置。
每次只能有一个应用程序锁定候选配置。其他用户和应用程序在锁定时可读取候选配置,或者更改其专用副本。锁定将一直持续到 Junos XML 协议会话结束,或者客户端应用程序通过发出标记来释放配置,如"锁定和解锁候选配置"或"使用 Junos XML 协议创建专用副本 <unlock-configuration/>
"中所述。
如果候选配置在客户端应用程序释放之前未提交,或者 Junos XML 协议会话在提交更改前由于任何原因结束,则更改会自动丢弃。候选配置和已提交配置不变。
释放候选配置
只要客户端应用程序对候选配置锁定,其他应用程序和用户就不能更改候选者。要解锁候选配置,客户端应用程序在 <unlock-configuration/>
标记中包含 <rpc>
标记:
<rpc> <unlock-configuration/> </rpc>
安全Junos XML 协议服务器确认其已成功解锁配置,其返回的开始和结束标记在两者之间 <rpc-reply>
</rpc-reply>
无内容。
<rpc-reply xmlns:junos="URL"> </rpc-reply>
如果 Junos XML 协议服务器无法释放配置,则标记会包含一个解释故障 <rpc-reply>
<xnm:error>
原因的元素。
创建配置的专用副本
要创建候选配置的专用副本,客户端应用程序会发出和 <private/>
标记中括在 <rpc>
一起 <open-configuration>
的标签。
<rpc> <open-configuration> <private/> </open-configuration> </rpc>
然后,客户端应用程序可以在专用副本上执行与常规候选配置相同的操作。
对专用副本进行更改后,客户端应用程序可以发出标记元素Junos OS用于常规候选配置,从而将更改提交到运行 Junos OS 的设备上 <commit-configuration>
的活动配置。但是,专用副本的提交操作有一些限制。有关详细信息,请参阅 使用 Junos XML 协议提交配置的 专用副本。
要丢弃专用副本而不提交,客户端应用程序会发出 <close-configuration/>
标记元素中封装 <rpc>
的标记。
<rpc> <close-configuration/> </rpc>
对专用副本的任何更改都丢失。如果协议 XML 协议会话在提交更改前由于任何Junos终止,对专用副本的更改也会丢失。除了发出标记元素,不能将更改另存为专用 <commit-configuration>
副本。
从 Junos OS 版本18.2R1开始,Junos XML 协议操作在打开候选配置的专用副本时不会发出 " " <open-configuration>
uncommitted changes will be discarded on exit
警告消息。但是,Junos OS关闭专用副本时,系统仍将丢弃未提交更改。
以下示例显示如何创建配置的专用副本。Junos XML 协议服务器在确认响应中提醒,如果会话结束之前未提交更改,则更改将被丢弃。