浏览代码

Merge pull request #12702 from LK4D4/good_ol_flushed

Return weird behaviour of returning json errors
Jessie Frazelle 10 年之前
父节点
当前提交
1492a7d7fd
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      api/server/server.go

+ 6 - 2
api/server/server.go

@@ -862,11 +862,12 @@ func (s *Server) postImagesPush(eng *engine.Engine, version version.Version, w h
 	useJSON := version.GreaterThan("1.0")
 	name := vars["name"]
 
+	output := utils.NewWriteFlusher(w)
 	imagePushConfig := &graph.ImagePushConfig{
 		MetaHeaders: metaHeaders,
 		AuthConfig:  authConfig,
 		Tag:         r.Form.Get("tag"),
-		OutStream:   utils.NewWriteFlusher(w),
+		OutStream:   output,
 		Json:        useJSON,
 	}
 	if useJSON {
@@ -874,8 +875,11 @@ func (s *Server) postImagesPush(eng *engine.Engine, version version.Version, w h
 	}
 
 	if err := s.daemon.Repositories().Push(name, imagePushConfig); err != nil {
+		if !output.Flushed() {
+			return err
+		}
 		sf := streamformatter.NewStreamFormatter(useJSON)
-		return fmt.Errorf(string(sf.FormatError(err)))
+		output.Write(sf.FormatError(err))
 	}
 	return nil