Yang:强制用户从节点所指的列表中输入
Posted
技术标签:
【中文标题】Yang:强制用户从节点所指的列表中输入【英文标题】:Yang: Force user to input from the list to which the node is referring to 【发布时间】:2021-09-21 01:45:28 【问题描述】:我是杨的新手。以下是我的 yang 配置。
container ntp
tailf:info "NTP Configuration";
tailf:cli-oper-info "Display NTP information";
tailf:cli-incomplete-show-path;
//ntp server config
leaf-list server
tailf:info "NTP servers";
ordered-by user;
tailf:cli-flat-list-syntax
tailf:cli-replace-all;
type gw-types:ipv4-host;
max-elements 4;
container auth
tailf:info "Configure NTP authentication keys";
list server
tailf:info "Configured ip addresses";
tailf:cli-suppress-mode;
tailf:cli-sequence-commands;
tailf:cli-incomplete-command;
tailf:cli-compact-syntax;
key "serverip";
leaf serverip
tailf:info "ip address";
type leafref
path "/gw-system:ntp/server";
leaf key
tailf:info "Authentication key ID for this server";
type uint32
range "1..65535";
choice authtype
tailf:cli-incomplete-command;
leaf sha256
tailf:info "Value of the sha256 key";
type tailf:aes-cfb-128-encrypted-string
tailf:info "Cleartext or AES encrypted key";
我想达到以下两个要求。有人可以帮我吗
我在节点serverip
中使用了类型leafref
,以便用户可以输入leaf-list server
中存在的IP 地址。当我测试它时,我能够输入一些随机的 IP 地址,这在我的leaf serverip
所指的leaf-list server
中也不存在。当我提交时,它会给出错误Illegal reference
,但我希望如果用户给出了列表中不存在的随机 IP,则不应允许该用户完成命令。当他输入命令而不是在提交时显示错误时,有什么方法可以在运行时限制他。
leaf serverip
指的是leaf-list server
。我希望如果用户尝试删除目标节点,即server
,那么应该首先自动删除它的所有依赖项。就像首先应该删除所有依赖项,然后删除主节点。
或者
它应该给用户一个错误,在删除目标节点之前先删除依赖节点。即在删除leaf-list server
用户之前,应先要求删除节点serverip
。我怎样才能实现它们中的任何一个?
【问题讨论】:
【参考方案1】:根据我对问题 1 的理解,您想限制 "leafref"
。但根据 RFC 6020。
“不能限制叶子引用。” - 参考RFC Section 9.9.1
leaf serverip
tailf:info "ip address";
type leafref
path "/gw-system:ntp/server";
在这一页中,所有服务器 IP 都将可用,并且通过选项卡我们可以获得相同的 IP。如果仍然想在这里应用一些逻辑,那么您可以尝试:
选择或 when 语句在这里应用一些逻辑。
对于第二个问题,您可以尝试将所有必需的叶子作为键。它应该可以工作。
【讨论】:
以上是关于Yang:强制用户从节点所指的列表中输入的主要内容,如果未能解决你的问题,请参考以下文章