[sonic-yang-mgmt]: sonic-yang-mgmt package for configuration validation.#3861
[sonic-yang-mgmt]: sonic-yang-mgmt package for configuration validation.#3861lguohan merged 18 commits intosonic-net:masterfrom
Conversation
32fc509 to
657555a
Compare
|
retest this please |
3267568 to
9c3dc09
Compare
renukamanavalan
left a comment
There was a problem hiding this comment.
This is where the SONiC Yang files are to be checked in.
Curious, why there is none,
This PR has basic build steps, Code and YANG files comes with PR 3730, 3784 & 3891. |
|
Build started for merge commit. |
ff9e266 to
bf6f677
Compare
bf6f677 to
2037148
Compare
5853723 to
2eaba1c
Compare
|
This pull request introduces 17 alerts when merging 2eaba1c8fd2fd70e93f5dccac20572cc12d43acf into 711445c - view on LGTM.com new alerts:
|
|
This pull request introduces 17 alerts when merging 1246ce4e7d24a070b8b7a9c7df7ff34753d9fb25 into de5a04a - view on LGTM.com new alerts:
|
1246ce4 to
a065d2a
Compare
|
This pull request introduces 1 alert when merging a065d2a6c5a05557a79f049ce5737909bd4a47cb into 7405f8c - view on LGTM.com new alerts:
|
a065d2a to
1b8977d
Compare
|
This pull request introduces 1 alert when merging 1b8977d910f60ff561179b511e8a5a62cb3e71b6 into 7405f8c - view on LGTM.com new alerts:
|
67f0028 to
fb26bce
Compare
Changes: 1.) prefix test_ for sample yang models. 2.) name properly with data_node or schema_node. 3.) Update function calls after libyang PLY APIs updates. 4.) Fix test cases after sample yang files name changes.
…ig for the test. Changes: 1.) All the YANG models are not merged yet, so test config has tables with no YANG, allow this scenario for tests as of now.
0a7d729 to
57db247
Compare
…oving reference to sonic. Changes: 1.) To avoid confusion, Changing yang models to generic and removing reference to sonic 2.) Additing Relative path whenever needed.
9d45052 to
f82637a
Compare
|
retest vsimage please |
1 similar comment
|
retest vsimage please |
|
05/11/2020 Review: |
…user warning. Changes: 1.) Store Tables with YANG models seperately, so that a warning to user can be issued with enough information. 2.) print the tables without YANG models properly in cropConfigDB(). Signed-off-by: Praveen Chaudhary [email protected]
…ly for user warning. Changes: 1.) Added config for extra tables in yangTest.json. 2.) Added new test case to find tables without yang models. 3.) Move common part in a helper function. Signed-off-by: Praveen Chaudhary [email protected]
|
@renukamanavalan, @lguohan, @zhenggen-xu Latest commit to address below review comments: Kindly let me know if any other concerns. Thanks a lot for the review. |
|
This pull request introduces 1 alert when merging d450aec234ab6f47b30b3b4e61b23e3448f1d9e8 into 0542afb - view on LGTM.com new alerts:
|
d450aec to
0466e82
Compare
|
This pull request introduces 1 alert when merging 0466e8272b0a3ab853e4b8d8484499a8dc8e4f5c into 0542afb - view on LGTM.com new alerts:
|
Changes: 1.) Categories public and private functions. 2.) Minor spaces related changes. 3.) Defining class SonicYangException and using it in all public functions. 4.) Changing Class names to PascalCase. 5.) Keeping functions, which deals with Libyang, in lower_underscore_case, rest functions names are in camelCase.
0466e82 to
84beafb
Compare
|
retest vsimage please |
|
@renukamanavalan, @lguohan, @zhenggen-xu All tests passed, Kindly review. Thanks a lot. |
|
Overall concern -- based on our discussion on this PR. This PR adds additional validation for load & reload. With neither update, nor save guarded by the same validation, there is a good probable window to get a saved .JSON, which can't be loaded back. This can lead to inconsistent state and difficulties ahead. As we have SWSS sdk, as the center point for all updates, we have a single point for validation. Request: Please make this as a priority to address in future PRs, ASAP. |
@renukamanavalan @lguohan @zhenggen-xu Note: As of now, I had to remove config validation while config load\reload, because I notice multiple ASIC files change. So I would like to know first, whether we need validation for each file or not ?, Please let me know if you can help me here. |
…atically (#22468) #### Why I did it src/sonic-utilities ``` * 8ab3773 - (HEAD -> master, origin/master, origin/HEAD) Set the timeout to be larger on VS chassis and speedup a bit (#3861) (8 hours ago) [Changrong Wu] * 824e993 - modifying psushow script to use key names instead of index (#3208) (23 hours ago) [Gregory Boudreau] ``` #### How I did it #### How to verify it #### Description for the changelog
This package includes python yang libraries which will be used with sonic utilities
package to validate the config. This python libraries are written on top of libyang
and also provides functionality to translate the config from SONiC ConfigDB to SONiC
YANG and vice-versa.
NOTE: This PR Depends on PR 3730
This PR has changes done under PR 3874 and 3891 as well. So those can be closed once this is merged.
- What I did
wheel package Makefiles
libyang Python APIs:
Extension of libyang Python APIs:
-- Cropping input config based on Yang Model.
-- Translate input config based on Yang Model.
-- rev Translate input config based on Yang Model.
-- Find xpath of port, portleaf and a yang list.
-- Find if node is key of a list while deletion if yes, then delete the parent.
- How I did it
wheel package Makefiles
libyang Python APIs:
Extension of libyang Python APIs:
From the json format of yang models, a map is created from config DB tables
to container in yang model. Input Config is cropped on based of this map.
Input Config is also translated based of this map.
Similarly from yang data tree, output is reverse translated to config DB.
This PR also includes:
-- Find xpath of port, portleaf and a yang list.
-- Find if node is key of a list while deletion if yes, then delete the parent.
Yang model can be represented in JSON as below:
This is used to create a map between Config DB Table and YANG Model Container.
Note: As per guideline https://github.com/Azure/SONiC/blob/master/doc/mgmt/SONiC_YANG_Model_Guidelines.md. Table maps to only container in YANG.
- How to verify it
wheel package Makefiles
Built this package separately.
libyang Python APIs:
Extension of libyang Python APIs:
Added PyTest:
- Description for the changelog
This package includes python yang libraries which will be used with sonic utilities
pacakge to validate the config. This python libraries are written on top of libyang
and also provides functionality to translate the config from SONiC ConfigDB to SONiC
YANG and vice-versa.
- A picture of a cute animal (not mandatory but encouraged)
I can put Microsoft logo :). Thx