From 73e8a39ff219833ebb28c12dc318466e3551b5bd Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 11 Dec 2013 18:25:30 -0800 Subject: [PATCH] move resize to job --- api.go | 11 +---------- server.go | 32 ++++++++++++++++++++++++++++---- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/api.go b/api.go index f7a7ac91a4..faa6d3695f 100644 --- a/api.go +++ b/api.go @@ -717,19 +717,10 @@ func postContainersResize(srv *Server, version float64, w http.ResponseWriter, r if err := parseForm(r); err != nil { return err } - height, err := strconv.Atoi(r.Form.Get("h")) - if err != nil { - return err - } - width, err := strconv.Atoi(r.Form.Get("w")) - if err != nil { - return err - } if vars == nil { return fmt.Errorf("Missing parameter") } - name := vars["name"] - if err := srv.ContainerResize(name, height, width); err != nil { + if err := srv.Eng.Job("resize", vars["name"], r.Form.Get("h"), r.Form.Get("w")).Run(); err != nil { return err } return nil diff --git a/server.go b/server.go index 3657c67a94..1d716114eb 100644 --- a/server.go +++ b/server.go @@ -99,6 +99,10 @@ func jobInitApi(job *engine.Job) engine.Status { job.Error(err) return engine.StatusErr } + if err := job.Eng.Register("resize", srv.ContainerResize); err != nil { + job.Error(err) + return engine.StatusErr + } return engine.StatusOK } @@ -1750,11 +1754,31 @@ func (srv *Server) ContainerWait(job *engine.Job) engine.Status { return engine.StatusErr } -func (srv *Server) ContainerResize(name string, h, w int) error { - if container := srv.runtime.Get(name); container != nil { - return container.Resize(h, w) +func (srv *Server) ContainerResize(job *engine.Job) engine.Status { + if len(job.Args) != 3 { + job.Errorf("Not enough arguments. Usage: %s CONTAINER HEIGHT WIDTH\n", job.Name) + return engine.StatusErr } - return fmt.Errorf("No such container: %s", name) + name := job.Args[0] + height, err := strconv.Atoi(job.Args[1]) + if err != nil { + job.Error(err) + return engine.StatusErr + } + width, err := strconv.Atoi(job.Args[2]) + if err != nil { + job.Error(err) + return engine.StatusErr + } + if container := srv.runtime.Get(name); container != nil { + if err := container.Resize(height, width); err != nil { + job.Error(err) + return engine.StatusErr + } + return engine.StatusOK + } + job.Errorf("No such container: %s", name) + return engine.StatusErr } func (srv *Server) ContainerAttach(name string, logs, stream, stdin, stdout, stderr bool, inStream io.ReadCloser, outStream, errStream io.Writer) error {