From a7e9baaf89ae86dba4f93fb76a436e4c86249e4c Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 15 Jan 2014 17:43:57 -0800 Subject: [PATCH] update attach to use the new job Docker-DCO-1.1-Signed-off-by: Victor Vieux (github: vieux) --- api.go | 17 +++++++++++++---- server.go | 6 ++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/api.go b/api.go index ea685c68dc..ee3cbf9d94 100644 --- a/api.go +++ b/api.go @@ -751,8 +751,17 @@ func postContainersAttach(srv *Server, version float64, w http.ResponseWriter, r return fmt.Errorf("Missing parameter") } - c, err := srv.ContainerInspect(vars["name"]) - if err != nil { + var ( + 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 } @@ -786,7 +795,7 @@ func postContainersAttach(srv *Server, version float64, w http.ResponseWriter, r 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("stream", r.Form.Get("stream")) 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") } - if _, err := srv.ContainerInspect(vars["name"]); err != nil { + if err := srv.Eng.Job("inspect_container", vars["name"]).Run(); err != nil { return err } diff --git a/server.go b/server.go index a52fd20693..2dd4c7ce23 100644 --- a/server.go +++ b/server.go @@ -2322,12 +2322,10 @@ func (srv *Server) JobContainerInspect(job *engine.Job) engine.Status { return engine.StatusErr } - type HostConfigPacker struct { + b, err := json.Marshal(&struct { *Container HostConfig *HostConfig - } - - b, err := json.Marshal(&HostConfigPacker{container, container.hostConfig}) + }{container, container.hostConfig}) if err != nil { job.Error(err) return engine.StatusErr