Browse Source

Fix Config.Cpuset from API < 1.20

Signed-off-by: Antonio Murdaca <amurdaca@redhat.com>
Antonio Murdaca 9 years ago
parent
commit
8c63ce4f6b

+ 1 - 1
api/types/versions/v1p19/types.go

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

+ 2 - 1
api/types/versions/v1p20/types.go

@@ -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
 }
 

+ 38 - 0
integration-cli/docker_api_inspect_unix_test.go

@@ -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'")
+	}
+}

+ 1 - 1
integration-cli/docker_cli_kill_test.go

@@ -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")