Create a new version of StartSledAgentRequest #4407
Merged
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.
In preparation for sled-addition, a new version of
StartSledAgentRequest
was created and the old version coverted to V0. Deterministic conversion from v0 to v1 is possible because we know thatntp_servers
anddns_servers
fields are not in use. We also know the values of the new fields.is_lrtq_learner
must be false because we only support RSS addition on existing sleds.We then implement a deserialize method that will return the new version regardless of what's on disk. This is similar to how we handled the bootstore upgrade for
EarlyNetworkConfig
. Also similar to that, we extended the format ofStartSledAgentRequest
to ease future deserializations. In those deserializations we can deserialize the "header" and use serde_json::value::RawValue in order to defer deserialization of thebody
field until we know theschema_version
.