mirror of
https://github.com/moby/moby.git
synced 2026-07-26 03:07:42 +00:00
This was a bit of an oversight; when setting additional fields to add, the compat package currently replaces fields unconditionally. This may have sounded like an OK idea, but it makes it more complicated to augment responses where current versions use an "omitempty", but older API versions should return default / zero-values. This patch: - Changes the meaning of "extra fields"; extra fields are only used if the field is not present in the response. - Makes the merging of "extra fields" recursive; this makes it easier to patch responses where extra fields must be added to nested structs. Previously, this would require the nested struct to be wrapped with a `compat.Wrap` and replaced as a whole; lacking a "replace" option made that more complicated, so making the extra fields recursive. - Comment-out a test that tested the old behavior of replacing fields; we currently have no cases where we must _replace_ fields or structs, so I did not yet implement such an option, but we can implement a `WithReplaceFields` (e.g.) once there's a need. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>