Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support for diffing presence containers #990

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

JonasKs
Copy link

@JonasKs JonasKs commented Oct 2, 2024

Closes #936.

The implementation ended up being somewhat as described in #936, where we indicate that presence container has a nil value in the findSetLeaves function.
In addition to this, we added a presence container interface, which is used in the marshalStructOrOrderedList to isolate the presence container which might have values, to act like an empty struct.

The result is that we do not break any current tests (even without the diff option), but we decided to add a diff option, with the reasoning described in #936:

Adding this as a non-optional, paired with ygot.BuildEmptyTree would also probably be breaking, as it would set all these presence containers?

We've confirmed this works in our setup. We're able to successfully configure all presence containers, even nested ones.

Co-authored-by: Terje Lafton [email protected]

Copy link

google-cla bot commented Oct 2, 2024

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@JonasKs JonasKs force-pushed the support-presence-containers branch from 4970f67 to 519ff68 Compare October 2, 2024 12:21
@JonasKs
Copy link
Author

JonasKs commented Oct 2, 2024

Hello @wenovus and @robshakir - it took some time, but we finally managed to crack the code. Please review. 😊

@JonasKs JonasKs force-pushed the support-presence-containers branch from 519ff68 to 58943fa Compare October 2, 2024 13:22
@coveralls
Copy link

coveralls commented Oct 2, 2024

Coverage Status

coverage: 88.766% (-0.04%) from 88.807%
when pulling bcaa4dc on JonasKs:support-presence-containers
into 100bd44 on openconfig:master.

@JonasKs JonasKs force-pushed the support-presence-containers branch from 58943fa to 8c252eb Compare October 2, 2024 13:42
@JonasKs
Copy link
Author

JonasKs commented Oct 2, 2024

Also tagging #645 author, @hansthienpondt.

@JonasKs
Copy link
Author

JonasKs commented Oct 24, 2024

Hi @robshakir , friendly bump in case you missed this 😊

@robshakir
Copy link
Contributor

I did miss it -- apologies, let me review ASAP.

@JonasKs
Copy link
Author

JonasKs commented Nov 15, 2024

I did miss it -- apologies, let me review ASAP.

No worries, @robshakir! We’ve been using the fork in production and it’s worked like a charm.

func (*WithRespectPresenceContainers) IsDiffOpt() {}

// hasIgnoreAdditions returns the first IgnoreAdditions from an opts slice, or
// nil if there isn't one.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

During a self review on my phone right now, I can see this is missing a proper docstring. I’ll fix Monday morning!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ygot.Diff don't respect presence containers
3 participants