|
@@ -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 {
|