update attach to use the new job

Docker-DCO-1.1-Signed-off-by: Victor Vieux <victor.vieux@docker.com> (github: vieux)
This commit is contained in:
Victor Vieux 2014-01-15 17:43:57 -08:00
parent 134435a79c
commit a7e9baaf89
2 changed files with 15 additions and 8 deletions

17
api.go
View File

@ -751,8 +751,17 @@ func postContainersAttach(srv *Server, version float64, w http.ResponseWriter, r
return fmt.Errorf("Missing parameter") return fmt.Errorf("Missing parameter")
} }
c, err := srv.ContainerInspect(vars["name"]) var (
if err != nil { job = srv.Eng.Job("inspect_container", vars["name"])
buffer = bytes.NewBuffer(nil)
c Container
)
job.Stdout.Add(buffer)
if err := job.Run(); err != nil {
return err
}
if err := json.Unmarshal(buffer.Bytes(), &c); err != nil {
return err return err
} }
@ -786,7 +795,7 @@ func postContainersAttach(srv *Server, version float64, w http.ResponseWriter, r
errStream = outStream errStream = outStream
} }
job := srv.Eng.Job("attach", vars["name"]) job = srv.Eng.Job("attach", vars["name"])
job.Setenv("logs", r.Form.Get("logs")) job.Setenv("logs", r.Form.Get("logs"))
job.Setenv("stream", r.Form.Get("stream")) job.Setenv("stream", r.Form.Get("stream"))
job.Setenv("stdin", r.Form.Get("stdin")) job.Setenv("stdin", r.Form.Get("stdin"))
@ -810,7 +819,7 @@ func wsContainersAttach(srv *Server, version float64, w http.ResponseWriter, r *
return fmt.Errorf("Missing parameter") return fmt.Errorf("Missing parameter")
} }
if _, err := srv.ContainerInspect(vars["name"]); err != nil { if err := srv.Eng.Job("inspect_container", vars["name"]).Run(); err != nil {
return err return err
} }

View File

@ -2322,12 +2322,10 @@ func (srv *Server) JobContainerInspect(job *engine.Job) engine.Status {
return engine.StatusErr return engine.StatusErr
} }
type HostConfigPacker struct { b, err := json.Marshal(&struct {
*Container *Container
HostConfig *HostConfig HostConfig *HostConfig
} }{container, container.hostConfig})
b, err := json.Marshal(&HostConfigPacker{container, container.hostConfig})
if err != nil { if err != nil {
job.Error(err) job.Error(err)
return engine.StatusErr return engine.StatusErr