| ... | ... |
@@ -717,19 +717,10 @@ func postContainersResize(srv *Server, version float64, w http.ResponseWriter, r |
| 717 | 717 |
if err := parseForm(r); err != nil {
|
| 718 | 718 |
return err |
| 719 | 719 |
} |
| 720 |
- height, err := strconv.Atoi(r.Form.Get("h"))
|
|
| 721 |
- if err != nil {
|
|
| 722 |
- return err |
|
| 723 |
- } |
|
| 724 |
- width, err := strconv.Atoi(r.Form.Get("w"))
|
|
| 725 |
- if err != nil {
|
|
| 726 |
- return err |
|
| 727 |
- } |
|
| 728 | 720 |
if vars == nil {
|
| 729 | 721 |
return fmt.Errorf("Missing parameter")
|
| 730 | 722 |
} |
| 731 |
- name := vars["name"] |
|
| 732 |
- if err := srv.ContainerResize(name, height, width); err != nil {
|
|
| 723 |
+ if err := srv.Eng.Job("resize", vars["name"], r.Form.Get("h"), r.Form.Get("w")).Run(); err != nil {
|
|
| 733 | 724 |
return err |
| 734 | 725 |
} |
| 735 | 726 |
return nil |
| ... | ... |
@@ -99,6 +99,10 @@ func jobInitApi(job *engine.Job) engine.Status {
|
| 99 | 99 |
job.Error(err) |
| 100 | 100 |
return engine.StatusErr |
| 101 | 101 |
} |
| 102 |
+ if err := job.Eng.Register("resize", srv.ContainerResize); err != nil {
|
|
| 103 |
+ job.Error(err) |
|
| 104 |
+ return engine.StatusErr |
|
| 105 |
+ } |
|
| 102 | 106 |
return engine.StatusOK |
| 103 | 107 |
} |
| 104 | 108 |
|
| ... | ... |
@@ -1750,11 +1754,31 @@ func (srv *Server) ContainerWait(job *engine.Job) engine.Status {
|
| 1750 | 1750 |
return engine.StatusErr |
| 1751 | 1751 |
} |
| 1752 | 1752 |
|
| 1753 |
-func (srv *Server) ContainerResize(name string, h, w int) error {
|
|
| 1753 |
+func (srv *Server) ContainerResize(job *engine.Job) engine.Status {
|
|
| 1754 |
+ if len(job.Args) != 3 {
|
|
| 1755 |
+ job.Errorf("Not enough arguments. Usage: %s CONTAINER HEIGHT WIDTH\n", job.Name)
|
|
| 1756 |
+ return engine.StatusErr |
|
| 1757 |
+ } |
|
| 1758 |
+ name := job.Args[0] |
|
| 1759 |
+ height, err := strconv.Atoi(job.Args[1]) |
|
| 1760 |
+ if err != nil {
|
|
| 1761 |
+ job.Error(err) |
|
| 1762 |
+ return engine.StatusErr |
|
| 1763 |
+ } |
|
| 1764 |
+ width, err := strconv.Atoi(job.Args[2]) |
|
| 1765 |
+ if err != nil {
|
|
| 1766 |
+ job.Error(err) |
|
| 1767 |
+ return engine.StatusErr |
|
| 1768 |
+ } |
|
| 1754 | 1769 |
if container := srv.runtime.Get(name); container != nil {
|
| 1755 |
- return container.Resize(h, w) |
|
| 1770 |
+ if err := container.Resize(height, width); err != nil {
|
|
| 1771 |
+ job.Error(err) |
|
| 1772 |
+ return engine.StatusErr |
|
| 1773 |
+ } |
|
| 1774 |
+ return engine.StatusOK |
|
| 1756 | 1775 |
} |
| 1757 |
- return fmt.Errorf("No such container: %s", name)
|
|
| 1776 |
+ job.Errorf("No such container: %s", name)
|
|
| 1777 |
+ return engine.StatusErr |
|
| 1758 | 1778 |
} |
| 1759 | 1779 |
|
| 1760 | 1780 |
func (srv *Server) ContainerAttach(name string, logs, stream, stdin, stdout, stderr bool, inStream io.ReadCloser, outStream, errStream io.Writer) error {
|