refactor, remove useless buffers

Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
This commit is contained in:
Victor Vieux 2014-01-17 18:54:02 -08:00
parent dc359e07d3
commit 455495f7ca
1 changed files with 29 additions and 45 deletions

66
api.go
View File

@ -184,7 +184,8 @@ func getImagesJSON(srv *Server, version float64, w http.ResponseWriter, r *http.
} }
var ( var (
buffer *bytes.Buffer err error
outs *engine.Table
job = srv.Eng.Job("images") job = srv.Eng.Job("images")
) )
@ -193,20 +194,15 @@ func getImagesJSON(srv *Server, version float64, w http.ResponseWriter, r *http.
if version >= 1.9 { if version >= 1.9 {
job.Stdout.Add(w) job.Stdout.Add(w)
} else { } else if outs, err = job.Stdout.AddTable(); err != nil {
buffer = bytes.NewBuffer(nil) return err
job.Stdout.Add(buffer)
} }
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.9 { // Send as a valid JSON array
outs := engine.NewTable("Created", 0)
if _, err := outs.ReadFrom(buffer); err != nil {
return err
}
if version < 1.8 { // 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 {
@ -222,10 +218,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 return err
} }
} else if _, err := outs.WriteListTo(w); err != nil { } else if _, err = outs.WriteListTo(w); err != nil {
return err return err
} }
} }
@ -312,25 +308,21 @@ func getImagesHistory(srv *Server, version float64, w http.ResponseWriter, r *ht
} }
var ( var (
buffer *bytes.Buffer err error
outs *engine.Table
job = srv.Eng.Job("history", vars["name"]) job = srv.Eng.Job("history", vars["name"])
) )
if version >= 1.9 { if version >= 1.9 {
job.Stdout.Add(w) job.Stdout.Add(w)
} else { } else if outs, err = job.Stdout.AddTable(); err != nil {
buffer = bytes.NewBuffer(nil) return err
job.Stdout.Add(buffer)
} }
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.9 { // Send as a valid JSON array
outs := engine.NewTable("Created", 0) if _, err = outs.WriteListTo(w); err != nil {
if _, err := outs.ReadFrom(buffer); err != nil {
return err
}
if _, err := outs.WriteListTo(w); err != nil {
return err return err
} }
} }
@ -342,25 +334,21 @@ func getContainersChanges(srv *Server, version float64, w http.ResponseWriter, r
return fmt.Errorf("Missing parameter") return fmt.Errorf("Missing parameter")
} }
var ( var (
buffer *bytes.Buffer err error
outs *engine.Table
job = srv.Eng.Job("changes", vars["name"]) job = srv.Eng.Job("changes", vars["name"])
) )
if version >= 1.9 { if version >= 1.9 {
job.Stdout.Add(w) job.Stdout.Add(w)
} else { } else if outs, err = job.Stdout.AddTable(); err != nil {
buffer = bytes.NewBuffer(nil) return err
job.Stdout.Add(buffer)
} }
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.9 { // Send as a valid JSON array
outs := engine.NewTable("", 0) if _, err = outs.WriteListTo(w); err != nil {
if _, err := outs.ReadFrom(buffer); err != nil {
return err
}
if _, err := outs.WriteListTo(w); err != nil {
return err return err
} }
} }
@ -514,24 +502,20 @@ func getImagesSearch(srv *Server, version float64, w http.ResponseWriter, r *htt
} }
var ( var (
buffer *bytes.Buffer err error
outs *engine.Table
job = srv.Eng.Job("search", r.Form.Get("term")) job = srv.Eng.Job("search", r.Form.Get("term"))
) )
if version >= 1.9 { if version >= 1.9 {
job.Stdout.Add(w) job.Stdout.Add(w)
} else { } else if outs, err = job.Stdout.AddTable(); err != nil {
buffer = bytes.NewBuffer(nil) return err
job.Stdout.Add(buffer)
} }
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.9 { // Send as a valid JSON array
outs := engine.NewTable("", 0) if _, err = outs.WriteListTo(w); err != nil {
if _, err := outs.ReadFrom(buffer); err != nil {
return err
}
if _, err := outs.WriteListTo(w); err != nil {
return err return err
} }
} }