Browse code

Move "stop" to daemon/stop.go

This is part of an effort to break apart the deprecated server/ package

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)

Solomon Hykes authored on 2014/08/01 05:40:15
Showing 4 changed files
... ...
@@ -126,6 +126,9 @@ func (daemon *Daemon) Install(eng *engine.Engine) error {
126 126
 	if err := eng.Register("create", daemon.ContainerCreate); err != nil {
127 127
 		return err
128 128
 	}
129
+	if err := eng.Register("stop", daemon.ContainerStop); err != nil {
130
+		return err
131
+	}
129 132
 	return nil
130 133
 }
131 134
 
132 135
new file mode 100644
... ...
@@ -0,0 +1,30 @@
0
+package daemon
1
+
2
+import (
3
+	"github.com/docker/docker/engine"
4
+)
5
+
6
+func (daemon *Daemon) ContainerStop(job *engine.Job) engine.Status {
7
+	if len(job.Args) != 1 {
8
+		return job.Errorf("Usage: %s CONTAINER\n", job.Name)
9
+	}
10
+	var (
11
+		name = job.Args[0]
12
+		t    = 10
13
+	)
14
+	if job.EnvExists("t") {
15
+		t = job.GetenvInt("t")
16
+	}
17
+	if container := daemon.Get(name); container != nil {
18
+		if !container.State.IsRunning() {
19
+			return job.Errorf("Container already stopped")
20
+		}
21
+		if err := container.Stop(int(t)); err != nil {
22
+			return job.Errorf("Cannot stop container %s: %s\n", name, err)
23
+		}
24
+		job.Eng.Job("log", "stop", container.ID, daemon.Repositories().ImageName(container.Image)).Run()
25
+	} else {
26
+		return job.Errorf("No such container: %s\n", name)
27
+	}
28
+	return engine.StatusOK
29
+}
... ...
@@ -467,31 +467,6 @@ func (srv *Server) ContainerStart(job *engine.Job) engine.Status {
467 467
 	return engine.StatusOK
468 468
 }
469 469
 
470
-func (srv *Server) ContainerStop(job *engine.Job) engine.Status {
471
-	if len(job.Args) != 1 {
472
-		return job.Errorf("Usage: %s CONTAINER\n", job.Name)
473
-	}
474
-	var (
475
-		name = job.Args[0]
476
-		t    = 10
477
-	)
478
-	if job.EnvExists("t") {
479
-		t = job.GetenvInt("t")
480
-	}
481
-	if container := srv.daemon.Get(name); container != nil {
482
-		if !container.State.IsRunning() {
483
-			return job.Errorf("Container already stopped")
484
-		}
485
-		if err := container.Stop(int(t)); err != nil {
486
-			return job.Errorf("Cannot stop container %s: %s\n", name, err)
487
-		}
488
-		srv.LogEvent("stop", container.ID, srv.daemon.Repositories().ImageName(container.Image))
489
-	} else {
490
-		return job.Errorf("No such container: %s\n", name)
491
-	}
492
-	return engine.StatusOK
493
-}
494
-
495 470
 func (srv *Server) ContainerWait(job *engine.Job) engine.Status {
496 471
 	if len(job.Args) != 1 {
497 472
 		return job.Errorf("Usage: %s", job.Name)
... ...
@@ -86,7 +86,6 @@ func InitServer(job *engine.Job) engine.Status {
86 86
 	job.Eng.Hack_SetGlobalVar("httpapi.daemon", srv.daemon)
87 87
 
88 88
 	for name, handler := range map[string]engine.Handler{
89
-		"stop":             srv.ContainerStop,
90 89
 		"restart":          srv.ContainerRestart,
91 90
 		"start":            srv.ContainerStart,
92 91
 		"wait":             srv.ContainerWait,