[yang-model] Using 'leafref' instead of 'must' for loopback (#9535)
#### Why I did it
Fix issue https://github.com/Azure/sonic-utilities/issues/1962
The problem is current implementation of [sonic-yang-mgmt::find_data_dependencies](f2774b635d/src/sonic-yang-mgmt/sonic_yang.py (L518)
) does not get referrers if they are using `must` statement, it has to use `leafref`.
For now we can convert `must` to `leafref` if possible. In the future we will investigate get referrers by `must` statements as well https://github.com/Azure/sonic-buildimage/issues/9534
#### How I did it
Instead of `must` use `leafref`
#### How to verify it
unit-test
#### Which release branch to backport (provide reason below if selected)
- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106
This commit is contained in:
parent
3af0f6ab0c
commit
013413d9ce
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"LOOPBACK_IPPREFIX_PORT_MUST_CONDITION_FALSE": {
|
"LOOPBACK_IPPREFIX_PORT_FOR_NON_EXIST_INTERFACE": {
|
||||||
"desc": "Loopback Ip-prefix port-name must condition failure.",
|
"desc": "Configure Loopback Ip-prefix for non-existing Loopback interface.",
|
||||||
"eStrKey" : "Must"
|
"eStrKey" : "LeafRef"
|
||||||
},
|
},
|
||||||
"LOOPBACK_INTERFACE_WRONG_NAT_ZONE_RANGE": {
|
"LOOPBACK_INTERFACE_WRONG_NAT_ZONE_RANGE": {
|
||||||
"desc": "Configure wrong value for nat zone.",
|
"desc": "Configure wrong value for nat zone.",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"LOOPBACK_IPPREFIX_PORT_MUST_CONDITION_FALSE": {
|
"LOOPBACK_IPPREFIX_PORT_FOR_NON_EXIST_INTERFACE": {
|
||||||
"sonic-loopback-interface:sonic-loopback-interface": {
|
"sonic-loopback-interface:sonic-loopback-interface": {
|
||||||
"sonic-loopback-interface:LOOPBACK_INTERFACE": {
|
"sonic-loopback-interface:LOOPBACK_INTERFACE": {
|
||||||
"LOOPBACK_INTERFACE_IPPREFIX_LIST": [
|
"LOOPBACK_INTERFACE_IPPREFIX_LIST": [
|
||||||
|
@ -63,12 +63,11 @@ module sonic-loopback-interface {
|
|||||||
key "name ip-prefix";
|
key "name ip-prefix";
|
||||||
|
|
||||||
leaf name{
|
leaf name{
|
||||||
/* This node must be present in LOOPBACK_INTERFACE_LIST */
|
description "Loopback interface name";
|
||||||
must "(current() = ../../LOOPBACK_INTERFACE_LIST[name=current()]/name)"
|
|
||||||
{
|
type leafref {
|
||||||
error-message "Must condition not satisfied, Try adding lo<>: {}, Example: 'lo1': {}";
|
path "../../LOOPBACK_INTERFACE_LIST/name";
|
||||||
}
|
}
|
||||||
type string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
leaf ip-prefix {
|
leaf ip-prefix {
|
||||||
|
Loading…
Reference in New Issue
Block a user