api: remove code for ContainerInspect on api < v1.20
API v1.23 and older are deprecated, so we can remove the code to adjust responses for API v1.19 and lower. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
dfdf2adf0c
commit
f0dd554e3c
6 changed files with 2 additions and 127 deletions
|
@ -1,35 +0,0 @@
|
|||
// Package v1p19 provides specific API types for the API version 1, patch 19.
|
||||
package v1p19 // import "github.com/docker/docker/api/types/versions/v1p19"
|
||||
|
||||
import (
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/api/types/versions/v1p20"
|
||||
"github.com/docker/go-connections/nat"
|
||||
)
|
||||
|
||||
// ContainerJSON is a backcompatibility struct for APIs prior to 1.20.
|
||||
// Note this is not used by the Windows daemon.
|
||||
type ContainerJSON struct {
|
||||
*types.ContainerJSONBase
|
||||
Volumes map[string]string
|
||||
VolumesRW map[string]bool
|
||||
Config *ContainerConfig
|
||||
NetworkSettings *v1p20.NetworkSettings
|
||||
}
|
||||
|
||||
// ContainerConfig is a backcompatibility struct for APIs prior to 1.20.
|
||||
type ContainerConfig struct {
|
||||
*container.Config
|
||||
|
||||
MacAddress string
|
||||
NetworkDisabled bool
|
||||
ExposedPorts map[nat.Port]struct{}
|
||||
|
||||
// backward compatibility, they now live in HostConfig
|
||||
VolumeDriver string
|
||||
Memory int64
|
||||
MemorySwap int64
|
||||
CPUShares int64 `json:"CpuShares"`
|
||||
CPUSet string `json:"Cpuset"`
|
||||
}
|
|
@ -29,8 +29,6 @@ import (
|
|||
// there is an error getting the data.
|
||||
func (daemon *Daemon) ContainerInspect(ctx context.Context, name string, size bool, version string) (interface{}, error) {
|
||||
switch {
|
||||
case versions.LessThan(version, "1.20"):
|
||||
return daemon.containerInspectPre120(ctx, name)
|
||||
case versions.Equal(version, "1.20"):
|
||||
return daemon.containerInspect120(name)
|
||||
case versions.LessThan(version, "1.45"):
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
package daemon // import "github.com/docker/docker/daemon"
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/backend"
|
||||
"github.com/docker/docker/api/types/versions/v1p19"
|
||||
"github.com/docker/docker/container"
|
||||
)
|
||||
|
||||
|
@ -19,47 +16,6 @@ func setPlatformSpecificContainerFields(container *container.Container, contJSON
|
|||
return contJSONBase
|
||||
}
|
||||
|
||||
// containerInspectPre120 gets containers for pre 1.20 APIs.
|
||||
func (daemon *Daemon) containerInspectPre120(ctx context.Context, name string) (*v1p19.ContainerJSON, error) {
|
||||
ctr, err := daemon.GetContainer(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ctr.Lock()
|
||||
defer ctr.Unlock()
|
||||
|
||||
base, err := daemon.getInspectData(&daemon.config().Config, ctr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
volumes := make(map[string]string)
|
||||
volumesRW := make(map[string]bool)
|
||||
for _, m := range ctr.MountPoints {
|
||||
volumes[m.Destination] = m.Path()
|
||||
volumesRW[m.Destination] = m.RW
|
||||
}
|
||||
|
||||
return &v1p19.ContainerJSON{
|
||||
ContainerJSONBase: base,
|
||||
Volumes: volumes,
|
||||
VolumesRW: volumesRW,
|
||||
Config: &v1p19.ContainerConfig{
|
||||
Config: ctr.Config,
|
||||
MacAddress: ctr.Config.MacAddress, //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.44.
|
||||
NetworkDisabled: ctr.Config.NetworkDisabled,
|
||||
ExposedPorts: ctr.Config.ExposedPorts,
|
||||
VolumeDriver: ctr.HostConfig.VolumeDriver,
|
||||
Memory: ctr.HostConfig.Memory,
|
||||
MemorySwap: ctr.HostConfig.MemorySwap,
|
||||
CPUShares: ctr.HostConfig.CPUShares,
|
||||
CPUSet: ctr.HostConfig.CpusetCpus,
|
||||
},
|
||||
NetworkSettings: daemon.getBackwardsCompatibleNetworkSettings(ctr.NetworkSettings),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func inspectExecProcessConfig(e *container.ExecConfig) *backend.ExecProcessConfig {
|
||||
return &backend.ExecProcessConfig{
|
||||
Tty: e.Tty,
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package daemon // import "github.com/docker/docker/daemon"
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/backend"
|
||||
"github.com/docker/docker/container"
|
||||
|
@ -13,11 +11,6 @@ func setPlatformSpecificContainerFields(container *container.Container, contJSON
|
|||
return contJSONBase
|
||||
}
|
||||
|
||||
// containerInspectPre120 get containers for pre 1.20 APIs.
|
||||
func (daemon *Daemon) containerInspectPre120(ctx context.Context, name string) (*types.ContainerJSON, error) {
|
||||
return daemon.ContainerInspectCurrent(ctx, name, false)
|
||||
}
|
||||
|
||||
func inspectExecProcessConfig(e *container.ExecConfig) *backend.ExecProcessConfig {
|
||||
return &backend.ExecProcessConfig{
|
||||
Tty: e.Tty,
|
||||
|
|
|
@ -37,7 +37,6 @@ func (s *DockerAPISuite) TestInspectAPIContainerResponse(c *testing.T) {
|
|||
} else {
|
||||
cases = []acase{
|
||||
{"v1.20", append(keysBase, "Mounts")},
|
||||
{"v1.19", append(keysBase, "Volumes", "VolumesRW")},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -65,7 +64,7 @@ func (s *DockerAPISuite) TestInspectAPIContainerVolumeDriverLegacy(c *testing.T)
|
|||
out := cli.DockerCmd(c, "run", "-d", "busybox", "true").Stdout()
|
||||
cleanedContainerID := strings.TrimSpace(out)
|
||||
|
||||
cases := []string{"v1.19", "v1.20"}
|
||||
cases := []string{"v1.20"}
|
||||
for _, version := range cases {
|
||||
body := getInspectBody(c, version, cleanedContainerID)
|
||||
|
||||
|
@ -125,7 +124,7 @@ func (s *DockerAPISuite) TestInspectAPIEmptyFieldsInConfigPre121(c *testing.T) {
|
|||
out := cli.DockerCmd(c, "run", "-d", "busybox", "true").Stdout()
|
||||
cleanedContainerID := strings.TrimSpace(out)
|
||||
|
||||
cases := []string{"v1.19", "v1.20"}
|
||||
cases := []string{"v1.20"}
|
||||
for _, version := range cases {
|
||||
body := getInspectBody(c, version, cleanedContainerID)
|
||||
|
||||
|
|
|
@ -1,53 +1,17 @@
|
|||
package container // import "github.com/docker/docker/integration/container"
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
containertypes "github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/client"
|
||||
"github.com/docker/docker/integration/internal/container"
|
||||
"github.com/docker/docker/testutil/request"
|
||||
"gotest.tools/v3/assert"
|
||||
is "gotest.tools/v3/assert/cmp"
|
||||
"gotest.tools/v3/poll"
|
||||
"gotest.tools/v3/skip"
|
||||
)
|
||||
|
||||
func TestInspectCpusetInConfigPre120(t *testing.T) {
|
||||
skip.If(t, testEnv.DaemonInfo.OSType == "windows" || !testEnv.DaemonInfo.CPUSet)
|
||||
|
||||
ctx := setupTest(t)
|
||||
apiClient := request.NewAPIClient(t, client.WithVersion("1.19"))
|
||||
|
||||
name := strings.ToLower(t.Name())
|
||||
// Create container with up to-date-API
|
||||
container.Run(ctx, t, request.NewAPIClient(t), container.WithName(name),
|
||||
container.WithCmd("true"),
|
||||
func(c *container.TestContainerConfig) {
|
||||
c.HostConfig.Resources.CpusetCpus = "0"
|
||||
},
|
||||
)
|
||||
poll.WaitOn(t, container.IsInState(ctx, apiClient, name, "exited"), poll.WithDelay(100*time.Millisecond))
|
||||
|
||||
_, body, err := apiClient.ContainerInspectWithRaw(ctx, name, false)
|
||||
assert.NilError(t, err)
|
||||
|
||||
var inspectJSON map[string]interface{}
|
||||
err = json.Unmarshal(body, &inspectJSON)
|
||||
assert.NilError(t, err, "unable to unmarshal body for version 1.19: %s", err)
|
||||
|
||||
config, ok := inspectJSON["Config"]
|
||||
assert.Check(t, is.Equal(true, ok), "Unable to find 'Config'")
|
||||
|
||||
cfg := config.(map[string]interface{})
|
||||
_, ok = cfg["Cpuset"]
|
||||
assert.Check(t, is.Equal(true, ok), "API version 1.19 expected to include Cpuset in 'Config'")
|
||||
}
|
||||
|
||||
func TestInspectAnnotations(t *testing.T) {
|
||||
ctx := setupTest(t)
|
||||
apiClient := request.NewAPIClient(t)
|
||||
|
|
Loading…
Reference in a new issue