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公司”

我已经测试过了,它工作正常

无论如何,感谢那些读过我的问题的人


干杯,朱利安

在单子的键中加上一片叶子,这是强制性的,但也强化了唯一性。因此,现在可以将一名员工分配到两个公司。这种情况将由员工列表中的两个条目表示。这真的是你想要的吗?您是否试图明确强制执行“公司内部列表<代码>员工中的叶子<代码>公司中的叶子”?这将在较小程度上修改原始模型。