freeconf / yang

Standards-based management for Golang microservices
Apache License 2.0
38 stars 15 forks source link

refactor ReplaceFrom() #113

Open sibuk-harabudjasim opened 1 month ago

sibuk-harabudjasim commented 1 month ago

In relation to #100, prepared PR with refactor of ReplaceFrom() to enclose all changes in single BeginEdit-EndEdit frame to be able to enclose it with transaction.

Had to do small enhancements to reflect.go to be able to reuse existing TestReplaceFrom() test. Reflect-based Node did not tolerate request flags. Also, please pay attention to changed payload structure in test, please ensure that such change is not breaking any existing contracts. I found several usecases where payload structure is not compatible with RESTCONF rfc8040 spec. I'll try to fix that in future PRs. And finally, list cleanup code might be not optimal, but it is baseline for optimizations. Please, give feedback if you see a easy way to improve that. Hope this PR is good enough for this project. I've put a lot of effort to understand this edit strategy but still intuition is a big part of this PR :)

dhubler commented 1 month ago

thanks for the PR, i will take a deeper look soon.