Merge pull request #3187 from vieux/resize_job

Move resize to job
This commit is contained in:
Guillaume J. Charmes 2013-12-13 13:55:23 -08:00
commit 071338172c
2 changed files with 29 additions and 14 deletions

11
api.go
View File

@ -717,19 +717,10 @@ func postContainersResize(srv *Server, version float64, w http.ResponseWriter, r
if err := parseForm(r); err != nil { if err := parseForm(r); err != nil {
return err 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 { if vars == nil {
return fmt.Errorf("Missing parameter") return fmt.Errorf("Missing parameter")
} }
name := vars["name"] if err := srv.Eng.Job("resize", vars["name"], r.Form.Get("h"), r.Form.Get("w")).Run(); err != nil {
if err := srv.ContainerResize(name, height, width); err != nil {
return err return err
} }
return nil return nil

View File

@ -99,6 +99,10 @@ func jobInitApi(job *engine.Job) engine.Status {
job.Error(err) job.Error(err)
return engine.StatusErr return engine.StatusErr
} }
if err := job.Eng.Register("resize", srv.ContainerResize); err != nil {
job.Error(err)
return engine.StatusErr
}
return engine.StatusOK return engine.StatusOK
} }
@ -1750,11 +1754,31 @@ func (srv *Server) ContainerWait(job *engine.Job) engine.Status {
return engine.StatusErr return engine.StatusErr
} }
func (srv *Server) ContainerResize(name string, h, w int) error { func (srv *Server) ContainerResize(job *engine.Job) engine.Status {
if container := srv.runtime.Get(name); container != nil { if len(job.Args) != 3 {
return container.Resize(h, w) 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 { func (srv *Server) ContainerAttach(name string, logs, stream, stdin, stdout, stderr bool, inStream io.ReadCloser, outStream, errStream io.Writer) error {