diff --git a/api/server/router/system/system_routes.go b/api/server/router/system/system_routes.go index a750f33268..37fc6cbdc6 100644 --- a/api/server/router/system/system_routes.go +++ b/api/server/router/system/system_routes.go @@ -116,11 +116,13 @@ func (s *systemRouter) getInfo(ctx context.Context, w http.ResponseWriter, r *ht info.FirewallBackend = nil } - // TODO(thaJeztah): Expected commits are deprecated, and should no longer be set in API 1.49. - info.ContainerdCommit.Expected = info.ContainerdCommit.ID //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. - info.RuncCommit.Expected = info.RuncCommit.ID //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. - info.InitCommit.Expected = info.InitCommit.ID //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. - + if versions.LessThan(version, "1.49") { + // Expected commits are omitted in API 1.49, but should still be + // included in older versions. + info.ContainerdCommit.Expected = info.ContainerdCommit.ID //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + info.RuncCommit.Expected = info.RuncCommit.ID //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + info.InitCommit.Expected = info.InitCommit.ID //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + } if versions.GreaterThanOrEqualTo(version, "1.42") { info.KernelMemory = false } diff --git a/api/swagger.yaml b/api/swagger.yaml index b9a69b027b..9d75e98d27 100644 --- a/api/swagger.yaml +++ b/api/swagger.yaml @@ -7186,13 +7186,6 @@ definitions: description: "Actual commit ID of external tool." type: "string" example: "cfb82a876ecc11b5ca0977d1733adbe58599088a" - Expected: - description: | - Commit ID of external tool expected by dockerd as set at build time. - - **Deprecated**: This field is deprecated and will be omitted in a API v1.49. - type: "string" - example: "2d41c047c83e09a6d61d464906feb2a2f3c52aa4" SwarmInfo: description: | diff --git a/api/types/system/info.go b/api/types/system/info.go index 7320582950..27173d4630 100644 --- a/api/types/system/info.go +++ b/api/types/system/info.go @@ -144,7 +144,7 @@ type Commit struct { // Expected is the commit ID of external tool expected by dockerd as set at build time. // // Deprecated: this field is no longer used in API v1.49, but kept for backward-compatibility with older API versions. - Expected string + Expected string `json:",omitempty"` } // NetworkAddressPool is a temp struct used by [Info] struct. diff --git a/docs/api/version-history.md b/docs/api/version-history.md index 333e769114..3184e42d73 100644 --- a/docs/api/version-history.md +++ b/docs/api/version-history.md @@ -26,6 +26,9 @@ keywords: "API, Docker, rcli, REST, documentation" * Deprecated: The `AllowNondistributableArtifactsCIDRs` and `AllowNondistributableArtifactsHostnames` fields in the `RegistryConfig` struct in the `GET /info` response are omitted in API v1.49. +* Deprecated: The `ContainerdCommit.Expected`, `RuncCommit.Expected`, and + `InitCommit.Expected` fields in the `GET /info` endpoint were deprecated + in API v1.48, and are now omitted in API v1.49. ## v1.48 API changes diff --git a/integration/system/info_linux_test.go b/integration/system/info_linux_test.go index 8905088203..79ab97ea5e 100644 --- a/integration/system/info_linux_test.go +++ b/integration/system/info_linux_test.go @@ -5,23 +5,45 @@ package system // import "github.com/docker/docker/integration/system" import ( "testing" + "github.com/docker/docker/client" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" ) func TestInfoBinaryCommits(t *testing.T) { ctx := setupTest(t) - apiClient := testEnv.APIClient() - info, err := apiClient.Info(ctx) - assert.NilError(t, err) + t.Run("current", func(t *testing.T) { + apiClient := testEnv.APIClient() - assert.Check(t, "N/A" != info.ContainerdCommit.ID) - assert.Check(t, is.Equal(info.ContainerdCommit.Expected, info.ContainerdCommit.ID)) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + info, err := apiClient.Info(ctx) + assert.NilError(t, err) - assert.Check(t, "N/A" != info.InitCommit.ID) - assert.Check(t, is.Equal(info.InitCommit.Expected, info.InitCommit.ID)) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + assert.Check(t, "N/A" != info.ContainerdCommit.ID) + assert.Check(t, is.Equal(info.ContainerdCommit.Expected, "")) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. - assert.Check(t, "N/A" != info.RuncCommit.ID) - assert.Check(t, is.Equal(info.RuncCommit.Expected, info.RuncCommit.ID)) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + assert.Check(t, "N/A" != info.InitCommit.ID) + assert.Check(t, is.Equal(info.InitCommit.Expected, "")) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + + assert.Check(t, "N/A" != info.RuncCommit.ID) + assert.Check(t, is.Equal(info.RuncCommit.Expected, "")) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + }) + + // Expected commits are omitted in API 1.49, but should still be included in older versions. + t.Run("1.48", func(t *testing.T) { + apiClient, err := client.NewClientWithOpts(client.FromEnv, client.WithVersion("1.48")) + assert.NilError(t, err) + + info, err := apiClient.Info(ctx) + assert.NilError(t, err) + + assert.Check(t, "N/A" != info.ContainerdCommit.ID) + assert.Check(t, is.Equal(info.ContainerdCommit.Expected, info.ContainerdCommit.ID)) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + + assert.Check(t, "N/A" != info.InitCommit.ID) + assert.Check(t, is.Equal(info.InitCommit.Expected, info.InitCommit.ID)) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + + assert.Check(t, "N/A" != info.RuncCommit.ID) + assert.Check(t, is.Equal(info.RuncCommit.Expected, info.RuncCommit.ID)) //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.49. + }) }