Fix Config.Cpuset from API < 1.20

Signed-off-by: Antonio Murdaca <amurdaca@redhat.com>
This commit is contained in:
Antonio Murdaca 2015-10-13 09:09:05 +02:00
parent b0cbc02283
commit 8c63ce4f6b
4 changed files with 42 additions and 3 deletions

View file

@ -24,5 +24,5 @@ type ContainerConfig struct {
Memory int64
MemorySwap int64
CPUShares int64 `json:"CpuShares"`
CPUSet string `json:"CpuSet"`
CPUSet string `json:"Cpuset"`
}

View file

@ -16,7 +16,8 @@ type ContainerJSON struct {
// ContainerConfig is a backcompatibility struct used in ContainerJSON for the API 1.20
type ContainerConfig struct {
*runconfig.Config
// backward compatibility, it lives now in HostConfig
// backward compatibility, they now live in HostConfig
VolumeDriver string
}

View file

@ -0,0 +1,38 @@
// +build !windows
package main
import (
"encoding/json"
"fmt"
"net/http"
"github.com/go-check/check"
)
// #16665
func (s *DockerSuite) TestInspectApiCpusetInConfigPre120(c *check.C) {
testRequires(c, DaemonIsLinux)
testRequires(c, cgroupCpuset)
name := "cpusetinconfig-pre120"
dockerCmd(c, "run", "--name", name, "--cpuset", "0-1", "busybox", "true")
status, body, err := sockRequest("GET", fmt.Sprintf("/v1.19/containers/%s/json", name), nil)
c.Assert(status, check.Equals, http.StatusOK)
c.Assert(err, check.IsNil)
var inspectJSON map[string]interface{}
if err = json.Unmarshal(body, &inspectJSON); err != nil {
c.Fatalf("unable to unmarshal body for version 1.19: %v", err)
}
config, ok := inspectJSON["Config"]
if !ok {
c.Fatal("Unable to find 'Config'")
}
cfg := config.(map[string]interface{})
if _, ok := cfg["Cpuset"]; !ok {
c.Fatal("Api version 1.19 expected to include Cpuset in 'Config'")
}
}

View file

@ -95,7 +95,7 @@ func (s *DockerSuite) TestKillWithInvalidSignal(c *check.C) {
}
}
func (s *DockerSuite) TestKillofStoppedContainerAPIPre120(c *check.C) {
func (s *DockerSuite) TestKillStoppedContainerAPIPre120(c *check.C) {
testRequires(c, DaemonIsLinux)
dockerCmd(c, "run", "--name", "docker-kill-test-api", "-d", "busybox", "top")
dockerCmd(c, "stop", "docker-kill-test-api")