From 139163d715f2682bef74e5c1b95b3205f492248b Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Tue, 9 Aug 2016 17:27:32 -0700 Subject: [PATCH] Return `application/json` for image/load API (quite=1) This fix tries to address the issue raised in 25529 wehre the image/load API returns `application/json` for quiet=0 and `text/plain` for quite=1. This fix makes the change so that `application/json` is returned for both quiet=0 and quite=1. This fix has been tested manually. This fix fixes 25529. Signed-off-by: Yong Tang Upstream-commit: 2f27632cde2f0e514bd3a8de77cc1934e5193a83 Component: engine --- .../api/server/router/image/image_routes.go | 15 ++++++--------- components/engine/image/tarexport/load.go | 2 +- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/components/engine/api/server/router/image/image_routes.go b/components/engine/api/server/router/image/image_routes.go index 18a36fda6d..97f350b1a9 100644 --- a/components/engine/api/server/router/image/image_routes.go +++ b/components/engine/api/server/router/image/image_routes.go @@ -201,17 +201,14 @@ func (s *imageRouter) postImagesLoad(ctx context.Context, w http.ResponseWriter, } quiet := httputils.BoolValueOrDefault(r, "quiet", true) - if !quiet { - w.Header().Set("Content-Type", "application/json") + w.Header().Set("Content-Type", "application/json") - output := ioutils.NewWriteFlusher(w) - defer output.Close() - if err := s.backend.LoadImage(r.Body, output, quiet); err != nil { - output.Write(streamformatter.NewJSONStreamFormatter().FormatError(err)) - } - return nil + output := ioutils.NewWriteFlusher(w) + defer output.Close() + if err := s.backend.LoadImage(r.Body, output, quiet); err != nil { + output.Write(streamformatter.NewJSONStreamFormatter().FormatError(err)) } - return s.backend.LoadImage(r.Body, w, quiet) + return nil } func (s *imageRouter) deleteImages(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { diff --git a/components/engine/image/tarexport/load.go b/components/engine/image/tarexport/load.go index ff42db53fb..46d2490baf 100644 --- a/components/engine/image/tarexport/load.go +++ b/components/engine/image/tarexport/load.go @@ -30,8 +30,8 @@ func (l *tarexporter) Load(inTar io.ReadCloser, outStream io.Writer, quiet bool) ) if !quiet { progressOutput = sf.NewProgressOutput(outStream, false) - outStream = &streamformatter.StdoutFormatter{Writer: outStream, StreamFormatter: streamformatter.NewJSONStreamFormatter()} } + outStream = &streamformatter.StdoutFormatter{Writer: outStream, StreamFormatter: streamformatter.NewJSONStreamFormatter()} tmpDir, err := ioutil.TempDir("", "docker-import-") if err != nil {