Browse Source

Return json array for `ps/ls --format json` commands

Signed-off-by: aiordache <[email protected]>
aiordache 5 years ago
parent
commit
83716a5eb2

+ 4 - 8
formatter/formatter.go

@@ -35,15 +35,11 @@ func Print(toJSON interface{}, format string, outWriter io.Writer, writerFn func
 	case JSON:
 		switch reflect.TypeOf(toJSON).Kind() {
 		case reflect.Slice:
-			s := reflect.ValueOf(toJSON)
-			for i := 0; i < s.Len(); i++ {
-				obj := s.Index(i).Interface()
-				jsonLine, err := ToJSON(obj, "", "")
-				if err != nil {
-					return err
-				}
-				_, _ = fmt.Fprint(outWriter, jsonLine)
+			outJSON, err := ToJSON(toJSON, "", "")
+			if err != nil {
+				return err
 			}
+			_, _ = fmt.Fprint(outWriter, outJSON)
 		default:
 			outJSON, err := ToStandardJSON(toJSON)
 			if err != nil {

+ 1 - 2
formatter/formatter_test.go

@@ -57,7 +57,6 @@ func TestPrint(t *testing.T) {
 			_, _ = fmt.Fprintf(w, "%s\t%s\n", t.Name, t.Status)
 		}
 	}, "NAME", "STATUS"))
-	assert.Equal(t, b.String(), `{"Name":"myName1","Status":"myStatus1"}
-{"Name":"myName2","Status":"myStatus2"}
+	assert.Equal(t, b.String(), `[{"Name":"myName1","Status":"myStatus1"},{"Name":"myName2","Status":"myStatus2"}]
 `)
 }

+ 1 - 1
tests/e2e/testdata/ls-out-json-windows.golden

@@ -1 +1 @@
-{"Current":true,"Description":"Current DOCKER_HOST based configuration","DockerEndpoint":"npipe:////./pipe/docker_engine","KubernetesEndpoint":"","Type":"moby","Name":"default","StackOrchestrator":"swarm"}
+[{"Current":true,"Description":"Current DOCKER_HOST based configuration","DockerEndpoint":"npipe:////./pipe/docker_engine","KubernetesEndpoint":"","Type":"moby","Name":"default","StackOrchestrator":"swarm"}]

+ 1 - 1
tests/e2e/testdata/ls-out-json.golden

@@ -1 +1 @@
-{"Current":true,"Description":"Current DOCKER_HOST based configuration","DockerEndpoint":"unix:///var/run/docker.sock","KubernetesEndpoint":"","Type":"moby","Name":"default","StackOrchestrator":"swarm"}
+[{"Current":true,"Description":"Current DOCKER_HOST based configuration","DockerEndpoint":"unix:///var/run/docker.sock","KubernetesEndpoint":"","Type":"moby","Name":"default","StackOrchestrator":"swarm"}]

+ 1 - 2
tests/e2e/testdata/ps-out-example-json.golden

@@ -1,2 +1 @@
-{"ID":"id","Image":"nginx","Status":"","Command":"","Ports":[]}
-{"ID":"1234","Image":"alpine","Status":"","Command":"","Ports":[]}
+[{"ID":"id","Image":"nginx","Status":"","Command":"","Ports":[]},{"ID":"1234","Image":"alpine","Status":"","Command":"","Ports":[]}]