-
Notifications
You must be signed in to change notification settings - Fork 14
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
Support validation again snapshot - consistent order of reporter output #550
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 tasks
sheidkamp
changed the title
Validate reports separate warnings
Support validation again snapshot - separate warnings and consistent order of output
Feb 5, 2024
Issues linked to changelog: |
sheidkamp
force-pushed
the
validate-reports-separate-warnings
branch
from
February 5, 2024 19:16
d097fcf
to
70ca0a1
Compare
davidjumani
previously approved these changes
Feb 6, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple of nits. Apart from that LGTM
davidjumani
reviewed
Feb 6, 2024
sheidkamp
changed the title
Support validation again snapshot - separate warnings and consistent order of output
Support validation again snapshot - consistent order of reporter output
Feb 16, 2024
davidjumani
previously approved these changes
Feb 20, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just one nit
davidjumani
approved these changes
Feb 20, 2024
ben-taussig-solo
approved these changes
Feb 20, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
Context:
ResourceReports
is defined astype ResourceReports map[resources.InputResource]Report
We want to present the results of iterating over these reports in a consistent manner, and the difficulty is that while the
InputResource
s may have unique instantiations, their underlying data might be identical.The existing implementation does not guarantee any order, so updating to use a specific order will be backwards compatible.
Details:
The approach taken to ensure output consistency is:
refKeys []string
- a slice of the unique keysrefMap = map[string][]resources.InputResource
- a map of the keys to the InputResources that are identified by that key.res
, which is an InputResource:resKey := res.GetMetadata().Ref().String()
as the key for the resourceresKey
torefKeys
res
to the slice of resources atrefMap[resKey]
refKeys
arrayWe can now loop over
refKeys
and access the resources in a consistent order. We still need to handle the ordering of resources that share a key, and we will do that in the individual validation functions.In the validation functions:
refKeys
By executing this process, we can say for a given set of reports:
res.GetMetadata().Ref().String()
Interesting decisions
There is an existing idiosyncrasy of the error reporting where an "invalid resource" error is added only the first resource encountered with an error:
solo-kit/pkg/api/v2/reporter/reporter.go
Line 201 in 2f0d239
This behavior has been maintained in the interest of rapid development