Browse Source

Merge pull request #12777 from ZJU-SEL/fix_pull_import_errpromt

Fix error prompt for pull & import handler postImagesCreate.
David Calavera 10 năm trước cách đây
mục cha
commit
404412282d
1 tập tin đã thay đổi với 14 bổ sung8 xóa
  1. 14 8
      api/server/server.go

+ 14 - 8
api/server/server.go

@@ -696,8 +696,9 @@ func (s *Server) postImagesCreate(version version.Version, w http.ResponseWriter
 	}
 	}
 
 
 	var (
 	var (
-		opErr   error
+		err     error
 		useJSON = version.GreaterThan("1.0")
 		useJSON = version.GreaterThan("1.0")
+		output  = utils.NewWriteFlusher(w)
 	)
 	)
 
 
 	if useJSON {
 	if useJSON {
@@ -719,11 +720,12 @@ func (s *Server) postImagesCreate(version version.Version, w http.ResponseWriter
 			Parallel:    version.GreaterThan("1.3"),
 			Parallel:    version.GreaterThan("1.3"),
 			MetaHeaders: metaHeaders,
 			MetaHeaders: metaHeaders,
 			AuthConfig:  authConfig,
 			AuthConfig:  authConfig,
-			OutStream:   utils.NewWriteFlusher(w),
+			OutStream:   output,
 			Json:        useJSON,
 			Json:        useJSON,
 		}
 		}
 
 
-		opErr = s.daemon.Repositories().Pull(image, tag, imagePullConfig)
+		err = s.daemon.Repositories().Pull(image, tag, imagePullConfig)
+
 	} else { //import
 	} else { //import
 		if tag == "" {
 		if tag == "" {
 			repo, tag = parsers.ParseRepositoryTag(repo)
 			repo, tag = parsers.ParseRepositoryTag(repo)
@@ -733,7 +735,7 @@ func (s *Server) postImagesCreate(version version.Version, w http.ResponseWriter
 		imageImportConfig := &graph.ImageImportConfig{
 		imageImportConfig := &graph.ImageImportConfig{
 			Changes:   r.Form["changes"],
 			Changes:   r.Form["changes"],
 			InConfig:  r.Body,
 			InConfig:  r.Body,
-			OutStream: utils.NewWriteFlusher(w),
+			OutStream: output,
 			Json:      useJSON,
 			Json:      useJSON,
 		}
 		}
 
 
@@ -743,15 +745,19 @@ func (s *Server) postImagesCreate(version version.Version, w http.ResponseWriter
 		}
 		}
 		imageImportConfig.ContainerConfig = newConfig
 		imageImportConfig.ContainerConfig = newConfig
 
 
-		opErr = s.daemon.Repositories().Import(src, repo, tag, imageImportConfig)
-	}
+		err = s.daemon.Repositories().Import(src, repo, tag, imageImportConfig)
 
 
-	if opErr != nil {
+	}
+	if err != nil {
+		if !output.Flushed() {
+			return err
+		}
 		sf := streamformatter.NewStreamFormatter(useJSON)
 		sf := streamformatter.NewStreamFormatter(useJSON)
-		return fmt.Errorf(string(sf.FormatError(opErr)))
+		output.Write(sf.FormatError(err))
 	}
 	}
 
 
 	return nil
 	return nil
+
 }
 }
 
 
 func (s *Server) getImagesSearch(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
 func (s *Server) getImagesSearch(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {