Merge pull request #27172 from ninja-quokka/docker_compate_145

[compat api] Remove ContainerConfig field
This commit is contained in:
openshift-merge-bot[bot]
2025-09-29 13:45:07 +00:00
committed by GitHub
4 changed files with 36 additions and 22 deletions

View File

@ -390,24 +390,23 @@ func imageDataToImageInspect(ctx context.Context, l *libimage.Image, r *http.Req
cc.Volumes = info.Config.Volumes
dockerImageInspect := dockerImage.InspectResponse{
Architecture: info.Architecture,
Author: info.Author,
Comment: info.Comment,
Config: &config,
ContainerConfig: cc,
Created: l.Created().Format(time.RFC3339Nano),
DockerVersion: info.Version,
GraphDriver: graphDriver,
ID: "sha256:" + l.ID(),
Metadata: dockerImage.Metadata{},
Os: info.Os,
OsVersion: info.Version,
Parent: info.Parent,
RepoDigests: info.RepoDigests,
RepoTags: info.RepoTags,
RootFS: rootfs,
Size: info.Size,
Variant: "",
Architecture: info.Architecture,
Author: info.Author,
Comment: info.Comment,
Config: &config,
Created: l.Created().Format(time.RFC3339Nano),
DockerVersion: info.Version,
GraphDriver: graphDriver,
ID: "sha256:" + l.ID(),
Metadata: dockerImage.Metadata{},
Os: info.Os,
OsVersion: info.Version,
Parent: info.Parent,
RepoDigests: info.RepoDigests,
RepoTags: info.RepoTags,
RootFS: rootfs,
Size: info.Size,
Variant: "",
}
if _, err := apiutil.SupportedVersion(r, "<1.44.0"); err == nil {
@ -415,6 +414,10 @@ func imageDataToImageInspect(ctx context.Context, l *libimage.Image, r *http.Req
dockerImageInspect.VirtualSize = info.VirtualSize
}
if _, err := apiutil.SupportedVersion(r, "<1.45.0"); err == nil {
dockerImageInspect.ContainerConfig = cc //nolint:staticcheck // Deprecated field
}
return &handlers.ImageInspect{InspectResponse: dockerImageInspect}, nil
}

View File

@ -20,8 +20,13 @@ type AuthConfig struct {
type ImageInspect struct {
dockerImage.InspectResponse
// Container is for backwards compat but is basically unused
Container string
// When you embed a struct, the fields of the embedded struct are "promoted" to the outer struct.
// If a field in the outer struct has the same name as a field in the embedded struct,
// the outer struct's field will shadow or override the embedded one allowing for a clean way to
// hide fields from the swagger spec that still exist in the libraries struct.
Container string `json:"-"`
ContainerConfig string `json:"-"`
VirtualSize string `json:"-"`
}
type ContainerConfig struct {

View File

@ -66,6 +66,14 @@ t GET /v1.43/images/$iid/json 200 \
t GET /v1.44/images/$iid/json 200 \
.VirtualSize=null
# Test ContainerConfig fields are present in API v1.44 (backward compatibility)
t GET /v1.44/images/$iid/json 200 \
.ContainerConfig.Hostname~[0-9a-f]
# Test ContainerConfig fields are no longer present in API >= v1.45 (deprecated since API v1.44, omitted since API v1.45)
t GET /v1.45/images/$iid/json 200 \
.ContainerConfig=null
t POST "images/create?fromImage=alpine" 200 .error~null .status~".*Download complete.*"
t POST "libpod/images/pull?reference=alpine&compatMode=true" 200 .error~null .status~".*Download complete.*"

View File

@ -23,7 +23,6 @@ class ImageTestCase(APITestCase):
"SharedSize",
"VirtualSize",
"Labels",
"Containers",
)
images = r.json()
self.assertIsInstance(images, list)
@ -45,7 +44,6 @@ class ImageTestCase(APITestCase):
"Parent",
"Comment",
"Created",
"Container",
"DockerVersion",
"Author",
"Architecture",