Reorganization of gNMI updates and deletes requests for Cisco XRd devices #303
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I encountered an issue when trying the project with Cisco XRd devices, and that patch resolves the problem.
Schema validation and parsing
In some cases, the device returns the strings
"true"or"false"instead of the boolean type, and that fixes the problemThe
GetOptionalInstance()is not working in some contexts, while the appropriate flag (present on the same structure) seems to beIsMandatory.Sending appropriate
gNMI updateanddeleterequestsThe current implementation doesn't take into account the presence of schema in different namespaces, needed in the Cisco environment.
So, there is these needs:
namespace:path) instead of using a "blank" path and only a "value"The proposed implementation is tailored to my environment, and has some more work to do to be ready for every scenario. I leave the code so that it can be taken to understand better the needs:
json_ietf, so I put here my code, but probably it should be moved somewhere elsedeletescenario I used an approach that can understand even path differentiations in subpaths of any grade, while in theupdateone it can understand only the first and second elements of the path (e.g.router/staticbelongs to the modulestatic-routing, whilerouter/ospfbelongs todynamic-routing, so the respective requests should be directed tostatic-routing:router/staticanddynamic-routing:router/ospf)