Browse code

move resize to job

Victor Vieux authored on 2013/12/12 11:25:30
Showing 2 changed files
... ...
@@ -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 {