2015-10-28 112 views
2

如果有經驗豐富的人能幫助我,我將不勝感激。 我triying申請2個不同列表之間的約束指令,在接下來的方式:YANG - leafref似乎不能正常工作

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"; 
    } 
    } 
} 

我進行了一些測試與RESTCONF API,我想檢查是否有可能避免一個POST命令,以創建一個新員工,如果其關聯公司沒有創建。我的意思是,我想使用陽模型並在兩個列表之間包含參考約束。

我一直在使用「必須」聲明如下嘗試:

must "boolean(/company[company-id=current()]" 

但與該嘗試沒有運氣。

在此先感謝。 致以問候

回答

1

我找到了讓它工作的方法。如果您希望模型的一個列表具有與其他第二個列表的外鍵引用,則必須在列表的鍵中包含leafref類型的字段。用我前面的問題的例子:

具有下一個列表:

list company{ 
    key company-id; 
    leaf company-id { 
     type yang:uuid; 
    } 
} 

如果你想在模型中的其他名單,這將取決於公司的編號,包括,你必須與它聲明接下來的關鍵:

list employee { 
    key "employee-id company";  

    leaf employee-id { 
     type yang:uuid; 
    } 
    leaf company { 
    type leafref { 
     path "/company/company-id"; 
     } 
    } 
} 

,請注意第二個列表的關鍵:

關鍵 「員工-ID公司」;

我已經測試過了,它的工作正常。

無論如何,感謝讀過我的問題的人。

Cheers,Julián

+0

在列表的關鍵字中包含一個葉使其成爲強制性的,但它也強制唯一性。所以現在你可以讓一名員工分配給兩家公司。這種情況將由員工名單中的兩個條目表示。這真的是你想要的嗎?你是否試圖明確強制要求名單中的「公司」員工名單?這會將原始模型修改得更少。 –

相關問題