|
@@ -31,8 +31,8 @@ func (s *DockerSuite) TestInspectApiContainerResponse(c *check.C) {
|
|
endpoint := fmt.Sprintf("/v%s/containers/%s/json", cs.version, cleanedContainerID)
|
|
endpoint := fmt.Sprintf("/v%s/containers/%s/json", cs.version, cleanedContainerID)
|
|
|
|
|
|
status, body, err := sockRequest("GET", endpoint, nil)
|
|
status, body, err := sockRequest("GET", endpoint, nil)
|
|
- c.Assert(status, check.Equals, http.StatusOK)
|
|
|
|
c.Assert(err, check.IsNil)
|
|
c.Assert(err, check.IsNil)
|
|
|
|
+ c.Assert(status, check.Equals, http.StatusOK)
|
|
|
|
|
|
var inspectJSON map[string]interface{}
|
|
var inspectJSON map[string]interface{}
|
|
if err = json.Unmarshal(body, &inspectJSON); err != nil {
|
|
if err = json.Unmarshal(body, &inspectJSON); err != nil {
|
|
@@ -61,8 +61,8 @@ func (s *DockerSuite) TestInspectApiContainerVolumeDriverLegacy(c *check.C) {
|
|
for _, version := range cases {
|
|
for _, version := range cases {
|
|
endpoint := fmt.Sprintf("/v%s/containers/%s/json", version, cleanedContainerID)
|
|
endpoint := fmt.Sprintf("/v%s/containers/%s/json", version, cleanedContainerID)
|
|
status, body, err := sockRequest("GET", endpoint, nil)
|
|
status, body, err := sockRequest("GET", endpoint, nil)
|
|
- c.Assert(status, check.Equals, http.StatusOK)
|
|
|
|
c.Assert(err, check.IsNil)
|
|
c.Assert(err, check.IsNil)
|
|
|
|
+ c.Assert(status, check.Equals, http.StatusOK)
|
|
|
|
|
|
var inspectJSON map[string]interface{}
|
|
var inspectJSON map[string]interface{}
|
|
if err = json.Unmarshal(body, &inspectJSON); err != nil {
|
|
if err = json.Unmarshal(body, &inspectJSON); err != nil {
|
|
@@ -87,8 +87,8 @@ func (s *DockerSuite) TestInspectApiContainerVolumeDriver(c *check.C) {
|
|
|
|
|
|
endpoint := fmt.Sprintf("/v1.21/containers/%s/json", cleanedContainerID)
|
|
endpoint := fmt.Sprintf("/v1.21/containers/%s/json", cleanedContainerID)
|
|
status, body, err := sockRequest("GET", endpoint, nil)
|
|
status, body, err := sockRequest("GET", endpoint, nil)
|
|
- c.Assert(status, check.Equals, http.StatusOK)
|
|
|
|
c.Assert(err, check.IsNil)
|
|
c.Assert(err, check.IsNil)
|
|
|
|
+ c.Assert(status, check.Equals, http.StatusOK)
|
|
|
|
|
|
var inspectJSON map[string]interface{}
|
|
var inspectJSON map[string]interface{}
|
|
if err = json.Unmarshal(body, &inspectJSON); err != nil {
|
|
if err = json.Unmarshal(body, &inspectJSON); err != nil {
|
|
@@ -133,3 +133,34 @@ func (s *DockerSuite) TestInspectApiImageResponse(c *check.C) {
|
|
c.Assert(stringutils.InSlice(imageJSON.Tags, "busybox:latest"), check.Equals, true)
|
|
c.Assert(stringutils.InSlice(imageJSON.Tags, "busybox:latest"), check.Equals, true)
|
|
c.Assert(stringutils.InSlice(imageJSON.Tags, "busybox:mytag"), check.Equals, true)
|
|
c.Assert(stringutils.InSlice(imageJSON.Tags, "busybox:mytag"), check.Equals, true)
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// #17131, #17139, #17173
|
|
|
|
+func (s *DockerSuite) TestInspectApiEmptyFieldsInConfigPre121(c *check.C) {
|
|
|
|
+ out, _ := dockerCmd(c, "run", "-d", "busybox", "true")
|
|
|
|
+
|
|
|
|
+ cleanedContainerID := strings.TrimSpace(out)
|
|
|
|
+
|
|
|
|
+ cases := []string{"1.19", "1.20"}
|
|
|
|
+ for _, version := range cases {
|
|
|
|
+ endpoint := fmt.Sprintf("/v%s/containers/%s/json", version, cleanedContainerID)
|
|
|
|
+ status, body, err := sockRequest("GET", endpoint, nil)
|
|
|
|
+ c.Assert(err, check.IsNil)
|
|
|
|
+ c.Assert(status, check.Equals, http.StatusOK)
|
|
|
|
+
|
|
|
|
+ var inspectJSON map[string]interface{}
|
|
|
|
+ if err = json.Unmarshal(body, &inspectJSON); err != nil {
|
|
|
|
+ c.Fatalf("unable to unmarshal body for version %s: %v", version, err)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ config, ok := inspectJSON["Config"]
|
|
|
|
+ if !ok {
|
|
|
|
+ c.Fatal("Unable to find 'Config'")
|
|
|
|
+ }
|
|
|
|
+ cfg := config.(map[string]interface{})
|
|
|
|
+ for _, f := range []string{"MacAddress", "NetworkDisabled", "ExposedPorts"} {
|
|
|
|
+ if _, ok := cfg[f]; !ok {
|
|
|
|
+ c.Fatalf("Api version %s expected to include %s in 'Config'", version, f)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|