From a4597396c2121e38de8b882b02eb12af3dd85fca Mon Sep 17 00:00:00 2001 From: ganglv <88995770+ganglyu@users.noreply.github.com> Date: Thu, 21 Apr 2022 17:20:36 +0800 Subject: [PATCH] [yang]: Update yang models to support 'cluster' (#10597) Why I did it Minigraph parser added a new field 'cluster' to device_metadata, and then yang validation is blocked. How I did it Add 'cluster' to device_metadata yang models. How to verify it Run UT for sonc-yang-models. Use minigraph parser to generate ConfigDB schema and run yang validation. Signed-off-by: Gang Lv ganglv@microsoft.com --- .../tests/device_metadata.json | 91 ++++++++++--------- .../tests_config/device_metadata.json | 9 ++ .../yang-models/sonic-device_metadata.yang | 5 + 3 files changed, 61 insertions(+), 44 deletions(-) diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json index 1035d527fb..d598054d7c 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests/device_metadata.json @@ -1,37 +1,37 @@ { "DEV_META_DEV_NEIGH_VERSION_TABLE": { - "desc": "DEVICE_METADATA DEVICE_NEIGHBOR VERSION TABLE." + "desc": "DEVICE_METADATA DEVICE_NEIGHBOR VERSION TABLE." }, "DEVICE_METADATA_DEFAULT_BGP_STATUS": { - "desc": "DEVICE_METADATA DEFAULT VALUE FOR BGP_STATUS FIELD.", - "eStrKey" : "Verify", - "verify": { - "xpath": "/sonic-device_metadata:sonic-device_metadata/DEVICE_METADATA/localhost/hostname", - "key": "sonic-device_metadata:default_bgp_status", - "value": "up" - } + "desc": "DEVICE_METADATA DEFAULT VALUE FOR BGP_STATUS FIELD.", + "eStrKey" : "Verify", + "verify": { + "xpath": "/sonic-device_metadata:sonic-device_metadata/DEVICE_METADATA/localhost/hostname", + "key": "sonic-device_metadata:default_bgp_status", + "value": "up" + } }, "DEVICE_METADATA_DEFAULT_DOCKER_ROUTING_CONFIG_MODE": { - "desc": "DEVICE_METADATA DEFAULT VALUE FOR DOCKER_ROUTING_CONFIG_MODE FIELD.", - "eStrKey" : "Verify", - "verify": { - "xpath": "/sonic-device_metadata:sonic-device_metadata/DEVICE_METADATA/localhost/hostname", - "key": "sonic-device_metadata:docker_routing_config_mode", - "value": "unified" - } + "desc": "DEVICE_METADATA DEFAULT VALUE FOR DOCKER_ROUTING_CONFIG_MODE FIELD.", + "eStrKey" : "Verify", + "verify": { + "xpath": "/sonic-device_metadata:sonic-device_metadata/DEVICE_METADATA/localhost/hostname", + "key": "sonic-device_metadata:docker_routing_config_mode", + "value": "unified" + } }, "DEVICE_METADATA_DEFAULT_PFCWD_STATUS": { - "desc": "DEVICE_METADATA DEFAULT VALUE FOR PFCWD FIELD.", - "eStrKey" : "Verify", - "verify": { - "xpath": "/sonic-device_metadata:sonic-device_metadata/DEVICE_METADATA/localhost/hostname", - "key": "sonic-device_metadata:default_pfcwd_status", - "value": "disable" - } + "desc": "DEVICE_METADATA DEFAULT VALUE FOR PFCWD FIELD.", + "eStrKey" : "Verify", + "verify": { + "xpath": "/sonic-device_metadata:sonic-device_metadata/DEVICE_METADATA/localhost/hostname", + "key": "sonic-device_metadata:default_pfcwd_status", + "value": "disable" + } }, "DEVICE_METADATA_TYPE_INCORRECT_PATTERN": { - "desc": "DEVICE_METADATA_TYPE_INCORRECT_PATTERN pattern failure.", - "eStrKey" : "Pattern" + "desc": "DEVICE_METADATA_TYPE_INCORRECT_PATTERN pattern failure.", + "eStrKey" : "Pattern" }, "DEVICE_METADATA_TYPE_CORRECT_PATTERN": { "desc": "DEVICE_METADATA correct value for Type field" @@ -73,26 +73,29 @@ "DEVICE_METADATA_RESOURCE_TYPE_CONFIG": { "desc": "Verifying resource type configuration." }, - "DEVICE_METADATA_VALID_SUBTYPE": { - "desc": "Verifying valid subtype value" - }, - "DEVICE_METADATA_INVALID_SUBTYPE": { - "desc": "Verifying invalid subtype value", - "eStrKey": "Pattern" - }, - "DEVICE_METADATA_VALID_PEER_SWITCH": { - "desc": "Verifying valid peer switch hostname" - }, - "DEVICE_METADATA_INVALID_PEER_SWITCH": { - "desc": "Verifying test fails with hostname that is too long", - "eStrKey": "Range" - }, - "DEVICE_METADATA_VALID_STORAGE_DEVICE": { - "desc": "Verifying valid storage device value" - }, - "DEVICE_METADATA_INVALID_STORAGE_DEVICE": { - "desc": "Verifying invalid storage device value", - "eStrKey": "InvalidValue" + "DEVICE_METADATA_VALID_CLUSTER": { + "desc": "Verifying valid cluster configuration." + }, + "DEVICE_METADATA_VALID_SUBTYPE": { + "desc": "Verifying valid subtype value" + }, + "DEVICE_METADATA_INVALID_SUBTYPE": { + "desc": "Verifying invalid subtype value", + "eStrKey": "Pattern" + }, + "DEVICE_METADATA_VALID_PEER_SWITCH": { + "desc": "Verifying valid peer switch hostname" + }, + "DEVICE_METADATA_INVALID_PEER_SWITCH": { + "desc": "Verifying test fails with hostname that is too long", + "eStrKey": "Range" + }, + "DEVICE_METADATA_VALID_STORAGE_DEVICE": { + "desc": "Verifying valid storage device value" + }, + "DEVICE_METADATA_INVALID_STORAGE_DEVICE": { + "desc": "Verifying invalid storage device value", + "eStrKey": "InvalidValue" }, "DEVICE_METADATA_VALID_DHCP_SERVER": { "desc": "Verifying dhcp_server configuration." diff --git a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json index 9792409cc4..910bcf9578 100644 --- a/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json +++ b/src/sonic-yang-models/tests/yang_model_tests/tests_config/device_metadata.json @@ -198,6 +198,15 @@ } } }, + "DEVICE_METADATA_VALID_CLUSTER": { + "sonic-device_metadata:sonic-device_metadata": { + "sonic-device_metadata:DEVICE_METADATA": { + "sonic-device_metadata:localhost": { + "cluster": "AAA00PrdStr00" + } + } + } + }, "DEVICE_METADATA_VALID_SUBTYPE": { "sonic-device_metadata:sonic-device_metadata": { "sonic-device_metadata:DEVICE_METADATA": { diff --git a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang index 08e7014ce6..b7cd962931 100644 --- a/src/sonic-yang-models/yang-models/sonic-device_metadata.yang +++ b/src/sonic-yang-models/yang-models/sonic-device_metadata.yang @@ -135,6 +135,11 @@ module sonic-device_metadata { type string; } + leaf cluster { + type string; + description "The switch is a member of this cluster."; + } + leaf subtype { type string { pattern "DualToR";