فهرست منبع

move t from arg to env

Victor Vieux 11 سال پیش
والد
کامیت
6ba456ff87
3فایلهای تغییر یافته به همراه11 افزوده شده و 16 حذف شده
  1. 1 3
      api.go
  2. 6 2
      integration/server_test.go
  3. 4 11
      server.go

+ 1 - 3
api.go

@@ -687,9 +687,7 @@ func postContainersStop(srv *Server, version float64, w http.ResponseWriter, r *
 		return fmt.Errorf("Missing parameter")
 	}
 	job := srv.Eng.Job("stop", vars["name"])
-	if t := r.Form.Get("t"); t != "" {
-		job.Args = append(job.Args, t)
-	}
+	job.Setenv("t", r.Form.Get("t"))
 	if err := job.Run(); err != nil {
 		return err
 	}

+ 6 - 2
integration/server_test.go

@@ -128,7 +128,9 @@ func TestCreateRmVolumes(t *testing.T) {
 		t.Fatal(err)
 	}
 
-	if err := eng.Job("stop", id, "1").Run(); err != nil {
+	job = eng.Job("stop", id)
+	job.SetenvInt("t", 1)
+	if err := job.Run(); err != nil {
 		t.Fatal(err)
 	}
 
@@ -186,7 +188,9 @@ func TestCreateStartRestartStopStartKillRm(t *testing.T) {
 		t.Fatal(err)
 	}
 
-	if err := eng.Job("stop", id, "15").Run(); err != nil {
+	job = eng.Job("stop", id)
+	job.SetenvInt("t", 15)
+	if err := job.Run(); err != nil {
 		t.Fatal(err)
 	}
 

+ 4 - 11
server.go

@@ -1718,20 +1718,13 @@ func (srv *Server) ContainerStart(job *engine.Job) engine.Status {
 }
 
 func (srv *Server) ContainerStop(job *engine.Job) engine.Status {
-	if len(job.Args) < 1 {
-		job.Errorf("Not enough arguments. Usage: %s CONTAINER TIMEOUT\n", job.Name)
+	if len(job.Args) != 1 {
+		job.Errorf("Usage: %s CONTAINER\n", job.Name)
 		return engine.StatusErr
 	}
 	name := job.Args[0]
-	var t uint64
-	if len(job.Args) == 2 {
-		var err error
-		t, err = strconv.ParseUint(job.Args[1], 10, 32)
-		if err != nil {
-			job.Errorf("Invalid delay format: %s. Please provide an integer number of seconds.\n", job.Args[1])
-			return engine.StatusErr
-		}
-	} else {
+	t := job.GetenvInt("t")
+	if t == -1 {
 		t = 10
 	}
 	if container := srv.runtime.Get(name); container != nil {