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

@ -394,7 +394,6 @@ func imageDataToImageInspect(ctx context.Context, l *libimage.Image, r *http.Req
Author: info.Author, Author: info.Author,
Comment: info.Comment, Comment: info.Comment,
Config: &config, Config: &config,
ContainerConfig: cc,
Created: l.Created().Format(time.RFC3339Nano), Created: l.Created().Format(time.RFC3339Nano),
DockerVersion: info.Version, DockerVersion: info.Version,
GraphDriver: graphDriver, GraphDriver: graphDriver,
@ -415,6 +414,10 @@ func imageDataToImageInspect(ctx context.Context, l *libimage.Image, r *http.Req
dockerImageInspect.VirtualSize = info.VirtualSize 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 return &handlers.ImageInspect{InspectResponse: dockerImageInspect}, nil
} }

View File

@ -20,8 +20,13 @@ type AuthConfig struct {
type ImageInspect struct { type ImageInspect struct {
dockerImage.InspectResponse dockerImage.InspectResponse
// Container is for backwards compat but is basically unused // When you embed a struct, the fields of the embedded struct are "promoted" to the outer struct.
Container string // 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 { 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 \ t GET /v1.44/images/$iid/json 200 \
.VirtualSize=null .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 "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.*" 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", "SharedSize",
"VirtualSize", "VirtualSize",
"Labels", "Labels",
"Containers",
) )
images = r.json() images = r.json()
self.assertIsInstance(images, list) self.assertIsInstance(images, list)
@ -45,7 +44,6 @@ class ImageTestCase(APITestCase):
"Parent", "Parent",
"Comment", "Comment",
"Created", "Created",
"Container",
"DockerVersion", "DockerVersion",
"Author", "Author",
"Architecture", "Architecture",