This repository has been archived by the owner on Jul 1, 2023. It is now read-only.
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
This PR fixes a Gravity 5.0.x compatiblity regression introduced by #233. Specifically, when trying to parse the output of
gravity status --output=json
on 5.0.36 robotest would fail with the following error:json: cannot unmarshal string into Go struct field
.Risk Profile
Related Issues
Fixes #247.
Testing Done
See the unit tests added. Here is what it looks like to run them:
go test ./infra/gravity
before the second commitgo test ./infra/gravity
afterHere is a complete 5.0.36 install: logs
Additional Information
I considered splitting the datamodel, such that GravityStatus became an interface fufilled by two different implementations:
Gravity50ClusterStatus
andGravity52ClusterStatus
(or the like). I chose not to go with this approach because:GravityStatus
or any of its member fields.--upgrade-via
tests from this release whereupon all this code can be removed wholesale.