mirror of https://github.com/docker/docs.git
Merge pull request #3704 from vieux/json_api_return_valid
Switch back to the valid json format
This commit is contained in:
commit
b417f79c00
77
api.go
77
api.go
|
@ -192,18 +192,17 @@ func getImagesJSON(srv *Server, version float64, w http.ResponseWriter, r *http.
|
||||||
job.Setenv("filter", r.Form.Get("filter"))
|
job.Setenv("filter", r.Form.Get("filter"))
|
||||||
job.Setenv("all", r.Form.Get("all"))
|
job.Setenv("all", r.Form.Get("all"))
|
||||||
|
|
||||||
if version >= 1.9 {
|
if version > 1.8 {
|
||||||
job.Stdout.Add(w)
|
job.Stdout.Add(w)
|
||||||
} else if outs, err = job.Stdout.AddTable(); err != nil {
|
} else if outs, err = job.Stdout.AddListTable(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = job.Run(); err != nil {
|
if err := job.Run(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if version < 1.9 { // Send as a valid JSON array
|
if version < 1.8 && outs != nil { // Convert to legacy format
|
||||||
if version < 1.8 { // Convert to legacy format
|
|
||||||
outsLegacy := engine.NewTable("Created", 0)
|
outsLegacy := engine.NewTable("Created", 0)
|
||||||
for _, out := range outs.Data {
|
for _, out := range outs.Data {
|
||||||
for _, repoTag := range out.GetList("RepoTags") {
|
for _, repoTag := range out.GetList("RepoTags") {
|
||||||
|
@ -218,14 +217,10 @@ func getImagesJSON(srv *Server, version float64, w http.ResponseWriter, r *http.
|
||||||
outsLegacy.Add(outLegacy)
|
outsLegacy.Add(outLegacy)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if _, err = outsLegacy.WriteListTo(w); err != nil {
|
if _, err := outsLegacy.WriteListTo(w); err != nil {
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else if _, err = outs.WriteListTo(w); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,25 +302,12 @@ func getImagesHistory(srv *Server, version float64, w http.ResponseWriter, r *ht
|
||||||
return fmt.Errorf("Missing parameter")
|
return fmt.Errorf("Missing parameter")
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var job = srv.Eng.Job("history", vars["name"])
|
||||||
err error
|
|
||||||
outs *engine.Table
|
|
||||||
job = srv.Eng.Job("history", vars["name"])
|
|
||||||
)
|
|
||||||
|
|
||||||
if version >= 1.9 {
|
|
||||||
job.Stdout.Add(w)
|
job.Stdout.Add(w)
|
||||||
} else if outs, err = job.Stdout.AddTable(); err != nil {
|
|
||||||
|
if err := job.Run(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err = job.Run(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if version < 1.9 { // Send as a valid JSON array
|
|
||||||
if _, err = outs.WriteListTo(w); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -333,26 +315,10 @@ func getContainersChanges(srv *Server, version float64, w http.ResponseWriter, r
|
||||||
if vars == nil {
|
if vars == nil {
|
||||||
return fmt.Errorf("Missing parameter")
|
return fmt.Errorf("Missing parameter")
|
||||||
}
|
}
|
||||||
var (
|
var job = srv.Eng.Job("changes", vars["name"])
|
||||||
err error
|
|
||||||
outs *engine.Table
|
|
||||||
job = srv.Eng.Job("changes", vars["name"])
|
|
||||||
)
|
|
||||||
|
|
||||||
if version >= 1.9 {
|
|
||||||
job.Stdout.Add(w)
|
job.Stdout.Add(w)
|
||||||
} else if outs, err = job.Stdout.AddTable(); err != nil {
|
|
||||||
return err
|
return job.Run()
|
||||||
}
|
|
||||||
if err = job.Run(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if version < 1.9 { // Send as a valid JSON array
|
|
||||||
if _, err = outs.WriteListTo(w); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func getContainersTop(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
func getContainersTop(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
||||||
|
@ -501,25 +467,10 @@ func getImagesSearch(srv *Server, version float64, w http.ResponseWriter, r *htt
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var job = srv.Eng.Job("search", r.Form.Get("term"))
|
||||||
err error
|
|
||||||
outs *engine.Table
|
|
||||||
job = srv.Eng.Job("search", r.Form.Get("term"))
|
|
||||||
)
|
|
||||||
if version >= 1.9 {
|
|
||||||
job.Stdout.Add(w)
|
job.Stdout.Add(w)
|
||||||
} else if outs, err = job.Stdout.AddTable(); err != nil {
|
|
||||||
return err
|
return job.Run()
|
||||||
}
|
|
||||||
if err = job.Run(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if version < 1.9 { // Send as a valid JSON array
|
|
||||||
if _, err = outs.WriteListTo(w); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func postImagesInsert(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
func postImagesInsert(srv *Server, version float64, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
||||||
|
|
10
commands.go
10
commands.go
|
@ -869,7 +869,7 @@ func (cli *DockerCli) CmdHistory(args ...string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
outs := engine.NewTable("Created", 0)
|
outs := engine.NewTable("Created", 0)
|
||||||
if _, err := outs.ReadFrom(stream); err != nil {
|
if _, err := outs.ReadListFrom(stream); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1147,7 +1147,7 @@ func (cli *DockerCli) CmdImages(args ...string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
outs := engine.NewTable("Created", 0)
|
outs := engine.NewTable("Created", 0)
|
||||||
if _, err := outs.ReadFrom(stream); err != nil {
|
if _, err := outs.ReadListFrom(stream); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1219,7 +1219,7 @@ func (cli *DockerCli) CmdImages(args ...string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
outs := engine.NewTable("Created", 0)
|
outs := engine.NewTable("Created", 0)
|
||||||
if _, err := outs.ReadFrom(stream); err != nil {
|
if _, err := outs.ReadListFrom(stream); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1540,7 +1540,7 @@ func (cli *DockerCli) CmdDiff(args ...string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
outs := engine.NewTable("", 0)
|
outs := engine.NewTable("", 0)
|
||||||
if _, err := outs.ReadFrom(stream); err != nil {
|
if _, err := outs.ReadListFrom(stream); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for _, change := range outs.Data {
|
for _, change := range outs.Data {
|
||||||
|
@ -1681,7 +1681,7 @@ func (cli *DockerCli) CmdSearch(args ...string) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
outs := engine.NewTable("star_count", 0)
|
outs := engine.NewTable("star_count", 0)
|
||||||
if _, err := outs.ReadFrom(stream); err != nil {
|
if _, err := outs.ReadListFrom(stream); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
w := tabwriter.NewWriter(cli.out, 10, 1, 3, ' ', 0)
|
w := tabwriter.NewWriter(cli.out, 10, 1, 3, ' ', 0)
|
||||||
|
|
|
@ -46,14 +46,6 @@ Full Documentation
|
||||||
What's new
|
What's new
|
||||||
----------
|
----------
|
||||||
|
|
||||||
.. http:get:: /images/json
|
|
||||||
|
|
||||||
**New!** This endpoint now returns a list of json message, like the events endpoint
|
|
||||||
|
|
||||||
.. http:get:: /images/(name)/history
|
|
||||||
|
|
||||||
**New!** This endpoint now returns a list of json message, like the events endpoint
|
|
||||||
|
|
||||||
.. http:post:: /build
|
.. http:post:: /build
|
||||||
|
|
||||||
**New!** This endpoint now takes a serialized ConfigFile which it uses to
|
**New!** This endpoint now takes a serialized ConfigFile which it uses to
|
||||||
|
|
|
@ -317,18 +317,20 @@ Inspect changes on a container's filesystem
|
||||||
HTTP/1.1 200 OK
|
HTTP/1.1 200 OK
|
||||||
Content-Type: application/json
|
Content-Type: application/json
|
||||||
|
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"Path":"/dev",
|
"Path":"/dev",
|
||||||
"Kind":0
|
"Kind":0
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
"Path":"/dev/kmsg",
|
"Path":"/dev/kmsg",
|
||||||
"Kind":1
|
"Kind":1
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
"Path":"/test",
|
"Path":"/test",
|
||||||
"Kind":1
|
"Kind":1
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
|
||||||
:statuscode 200: no error
|
:statuscode 200: no error
|
||||||
:statuscode 404: no such container
|
:statuscode 404: no such container
|
||||||
|
@ -654,6 +656,7 @@ List Images
|
||||||
HTTP/1.1 200 OK
|
HTTP/1.1 200 OK
|
||||||
Content-Type: application/json
|
Content-Type: application/json
|
||||||
|
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"RepoTags": [
|
"RepoTags": [
|
||||||
"ubuntu:12.04",
|
"ubuntu:12.04",
|
||||||
|
@ -664,7 +667,7 @@ List Images
|
||||||
"Created": 1365714795,
|
"Created": 1365714795,
|
||||||
"Size": 131506275,
|
"Size": 131506275,
|
||||||
"VirtualSize": 131506275
|
"VirtualSize": 131506275
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
"RepoTags": [
|
"RepoTags": [
|
||||||
"ubuntu:12.10",
|
"ubuntu:12.10",
|
||||||
|
@ -676,6 +679,7 @@ List Images
|
||||||
"Size": 24653,
|
"Size": 24653,
|
||||||
"VirtualSize": 180116135
|
"VirtualSize": 180116135
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
Create an image
|
Create an image
|
||||||
|
@ -821,16 +825,18 @@ Get the history of an image
|
||||||
HTTP/1.1 200 OK
|
HTTP/1.1 200 OK
|
||||||
Content-Type: application/json
|
Content-Type: application/json
|
||||||
|
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"Id":"b750fe79269d",
|
"Id":"b750fe79269d",
|
||||||
"Created":1364102658,
|
"Created":1364102658,
|
||||||
"CreatedBy":"/bin/bash"
|
"CreatedBy":"/bin/bash"
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
"Id":"27cf78414709",
|
"Id":"27cf78414709",
|
||||||
"Created":1364068391,
|
"Created":1364068391,
|
||||||
"CreatedBy":""
|
"CreatedBy":""
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
|
||||||
:statuscode 200: no error
|
:statuscode 200: no error
|
||||||
:statuscode 404: no such image
|
:statuscode 404: no such image
|
||||||
|
@ -954,20 +960,21 @@ Search images
|
||||||
HTTP/1.1 200 OK
|
HTTP/1.1 200 OK
|
||||||
Content-Type: application/json
|
Content-Type: application/json
|
||||||
|
|
||||||
|
[
|
||||||
{
|
{
|
||||||
"description": "",
|
"description": "",
|
||||||
"is_official": false,
|
"is_official": false,
|
||||||
"is_trusted": false,
|
"is_trusted": false,
|
||||||
"name": "wma55/u1210sshd",
|
"name": "wma55/u1210sshd",
|
||||||
"star_count": 0
|
"star_count": 0
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
"description": "",
|
"description": "",
|
||||||
"is_official": false,
|
"is_official": false,
|
||||||
"is_trusted": false,
|
"is_trusted": false,
|
||||||
"name": "jdswinbank/sshd",
|
"name": "jdswinbank/sshd",
|
||||||
"star_count": 0
|
"star_count": 0
|
||||||
}
|
},
|
||||||
{
|
{
|
||||||
"description": "",
|
"description": "",
|
||||||
"is_official": false,
|
"is_official": false,
|
||||||
|
@ -976,6 +983,7 @@ Search images
|
||||||
"star_count": 0
|
"star_count": 0
|
||||||
}
|
}
|
||||||
...
|
...
|
||||||
|
]
|
||||||
|
|
||||||
:query term: term to search
|
:query term: term to search
|
||||||
:statuscode 200: no error
|
:statuscode 200: no error
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -324,6 +325,31 @@ func (t *Table) WriteTo(dst io.Writer) (n int64, err error) {
|
||||||
return n, nil
|
return n, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *Table) ReadListFrom(src io.Reader) (n int64, err error) {
|
||||||
|
var array []interface{}
|
||||||
|
|
||||||
|
content, err := ioutil.ReadAll(src)
|
||||||
|
if err != nil {
|
||||||
|
return -1, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := json.Unmarshal(content, &array); err != nil {
|
||||||
|
return -1, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, item := range array {
|
||||||
|
if m, ok := item.(map[string]interface{}); ok {
|
||||||
|
env := &Env{}
|
||||||
|
for key, value := range m {
|
||||||
|
env.SetAuto(key, value)
|
||||||
|
}
|
||||||
|
t.Add(env)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return int64(len(content)), nil
|
||||||
|
}
|
||||||
|
|
||||||
func (t *Table) ReadFrom(src io.Reader) (n int64, err error) {
|
func (t *Table) ReadFrom(src io.Reader) (n int64, err error) {
|
||||||
decoder := NewDecoder(src)
|
decoder := NewDecoder(src)
|
||||||
for {
|
for {
|
||||||
|
|
|
@ -211,6 +211,22 @@ func (o *Output) AddEnv() (dst *Env, err error) {
|
||||||
return dst, nil
|
return dst, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *Output) AddListTable() (dst *Table, err error) {
|
||||||
|
src, err := o.AddPipe()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
dst = NewTable("", 0)
|
||||||
|
o.tasks.Add(1)
|
||||||
|
go func() {
|
||||||
|
defer o.tasks.Done()
|
||||||
|
if _, err := dst.ReadListFrom(src); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
return dst, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (o *Output) AddTable() (dst *Table, err error) {
|
func (o *Output) AddTable() (dst *Table, err error) {
|
||||||
src, err := o.AddPipe()
|
src, err := o.AddPipe()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -61,7 +61,7 @@ func TestGetInfo(t *testing.T) {
|
||||||
srv := mkServerFromEngine(eng, t)
|
srv := mkServerFromEngine(eng, t)
|
||||||
|
|
||||||
job := eng.Job("images")
|
job := eng.Job("images")
|
||||||
initialImages, err := job.Stdout.AddTable()
|
initialImages, err := job.Stdout.AddListTable()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -149,7 +149,7 @@ func TestGetImagesJSON(t *testing.T) {
|
||||||
srv := mkServerFromEngine(eng, t)
|
srv := mkServerFromEngine(eng, t)
|
||||||
|
|
||||||
job := eng.Job("images")
|
job := eng.Job("images")
|
||||||
initialImages, err := job.Stdout.AddTable()
|
initialImages, err := job.Stdout.AddListTable()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -170,7 +170,7 @@ func TestGetImagesJSON(t *testing.T) {
|
||||||
assertHttpNotError(r, t)
|
assertHttpNotError(r, t)
|
||||||
|
|
||||||
images := engine.NewTable("Created", 0)
|
images := engine.NewTable("Created", 0)
|
||||||
if _, err := images.ReadFrom(r.Body); err != nil {
|
if _, err := images.ReadListFrom(r.Body); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ func TestGetImagesJSON(t *testing.T) {
|
||||||
assertHttpNotError(r2, t)
|
assertHttpNotError(r2, t)
|
||||||
|
|
||||||
images2 := engine.NewTable("ID", 0)
|
images2 := engine.NewTable("ID", 0)
|
||||||
if _, err := images2.ReadFrom(r2.Body); err != nil {
|
if _, err := images2.ReadListFrom(r2.Body); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,7 +238,7 @@ func TestGetImagesJSON(t *testing.T) {
|
||||||
assertHttpNotError(r3, t)
|
assertHttpNotError(r3, t)
|
||||||
|
|
||||||
images3 := engine.NewTable("ID", 0)
|
images3 := engine.NewTable("ID", 0)
|
||||||
if _, err := images3.ReadFrom(r3.Body); err != nil {
|
if _, err := images3.ReadListFrom(r3.Body); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ func TestGetImagesHistory(t *testing.T) {
|
||||||
assertHttpNotError(r, t)
|
assertHttpNotError(r, t)
|
||||||
|
|
||||||
outs := engine.NewTable("Created", 0)
|
outs := engine.NewTable("Created", 0)
|
||||||
if _, err := outs.ReadFrom(r.Body); err != nil {
|
if _, err := outs.ReadListFrom(r.Body); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if len(outs.Data) != 1 {
|
if len(outs.Data) != 1 {
|
||||||
|
@ -409,7 +409,7 @@ func TestGetContainersChanges(t *testing.T) {
|
||||||
}
|
}
|
||||||
assertHttpNotError(r, t)
|
assertHttpNotError(r, t)
|
||||||
outs := engine.NewTable("", 0)
|
outs := engine.NewTable("", 0)
|
||||||
if _, err := outs.ReadFrom(r.Body); err != nil {
|
if _, err := outs.ReadListFrom(r.Body); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -335,7 +335,7 @@ func getImages(eng *engine.Engine, t *testing.T, all bool, filter string) *engin
|
||||||
job := eng.Job("images")
|
job := eng.Job("images")
|
||||||
job.SetenvBool("all", all)
|
job.SetenvBool("all", all)
|
||||||
job.Setenv("filter", filter)
|
job.Setenv("filter", filter)
|
||||||
images, err := job.Stdout.AddTable()
|
images, err := job.Stdout.AddListTable()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -493,7 +493,7 @@ func (srv *Server) ImagesSearch(job *engine.Job) engine.Status {
|
||||||
outs.Add(out)
|
outs.Add(out)
|
||||||
}
|
}
|
||||||
outs.ReverseSort()
|
outs.ReverseSort()
|
||||||
if _, err := outs.WriteTo(job.Stdout); err != nil {
|
if _, err := outs.WriteListTo(job.Stdout); err != nil {
|
||||||
job.Error(err)
|
job.Error(err)
|
||||||
return engine.StatusErr
|
return engine.StatusErr
|
||||||
}
|
}
|
||||||
|
@ -658,7 +658,7 @@ func (srv *Server) Images(job *engine.Job) engine.Status {
|
||||||
}
|
}
|
||||||
|
|
||||||
outs.ReverseSort()
|
outs.ReverseSort()
|
||||||
if _, err := outs.WriteTo(job.Stdout); err != nil {
|
if _, err := outs.WriteListTo(job.Stdout); err != nil {
|
||||||
job.Error(err)
|
job.Error(err)
|
||||||
return engine.StatusErr
|
return engine.StatusErr
|
||||||
}
|
}
|
||||||
|
@ -744,7 +744,7 @@ func (srv *Server) ImageHistory(job *engine.Job) engine.Status {
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
outs.ReverseSort()
|
outs.ReverseSort()
|
||||||
if _, err := outs.WriteTo(job.Stdout); err != nil {
|
if _, err := outs.WriteListTo(job.Stdout); err != nil {
|
||||||
job.Error(err)
|
job.Error(err)
|
||||||
return engine.StatusErr
|
return engine.StatusErr
|
||||||
}
|
}
|
||||||
|
@ -849,7 +849,7 @@ func (srv *Server) ContainerChanges(job *engine.Job) engine.Status {
|
||||||
}
|
}
|
||||||
outs.Add(out)
|
outs.Add(out)
|
||||||
}
|
}
|
||||||
if _, err := outs.WriteTo(job.Stdout); err != nil {
|
if _, err := outs.WriteListTo(job.Stdout); err != nil {
|
||||||
job.Error(err)
|
job.Error(err)
|
||||||
return engine.StatusErr
|
return engine.StatusErr
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue