Model YANG-leafref似乎不起作用
如果一个更有经验的人能帮助我,我将不胜感激。 我正在尝试以下一种方式在两个不同列表之间应用约束引用:Model YANG-leafref似乎不起作用,model,constraints,opendaylight,ietf-netmod-yang,Model,Constraints,Opendaylight,Ietf Netmod Yang,如果一个更有经验的人能帮助我,我将不胜感激。 我正在尝试以下一种方式在两个不同列表之间应用约束引用: list company{ key company-id; leaf company-id { type yang:uuid; } } list employee { key employee-id; leaf employee-id { type yang:uuid; } leaf company {
list company{
key company-id;
leaf company-id {
type yang:uuid;
}
}
list employee {
key employee-id;
leaf employee-id {
type yang:uuid;
}
leaf company {
type leafref {
path "/company/company-id";
}
}
}
我正在用restconfapi执行一些测试,我想检查一下,如果没有创建一个新员工的相关公司,是否可以避免使用POST命令来创建一个新员工。我的意思是,我想使用一个yang模型,并在两个列表之间包含一个引用约束
我尝试使用“必须”语句,如下所示:
must "boolean(/company[company-id=current()]"
但那次尝试没有成功
提前谢谢。
致以最诚挚的问候我找到了让它发挥作用的方法。如果希望模型的一个列表与另一个列表具有外键引用,则必须在列表的键中包含leafref类型的字段。以我上一个问题为例: 拥有下一个列表:
list company{
key company-id;
leaf company-id {
type yang:uuid;
}
}
如果要在模型中包含其他列表(取决于公司id),则必须使用下一个键进行声明:
list employee {
key "employee-id company";
leaf employee-id {
type yang:uuid;
}
leaf company {
type leafref {
path "/company/company-id";
}
}
}
注意第二个列表的键:
关键“员工id公司”
我已经测试过了,它工作正常
无论如何,感谢那些读过我的问题的人
干杯,朱利安在单子的键中加上一片叶子,这是强制性的,但也强化了唯一性。因此,现在可以将一名员工分配到两个公司。这种情况将由员工列表中的两个条目表示。这真的是你想要的吗?您是否试图明确强制执行“公司内部列表<代码>员工代码>中的叶子<代码>公司代码>中的叶子”?这将在较小程度上修改原始模型。