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)
| ... | ... |
@@ -132,6 +132,9 @@ func (daemon *Daemon) Install(eng *engine.Engine) error {
|
| 132 | 132 |
if err := eng.Register("start", daemon.ContainerStart); err != nil {
|
| 133 | 133 |
return err |
| 134 | 134 |
} |
| 135 |
+ if err := eng.Register("restart", daemon.ContainerRestart); err != nil {
|
|
| 136 |
+ return err |
|
| 137 |
+ } |
|
| 135 | 138 |
return nil |
| 136 | 139 |
} |
| 137 | 140 |
|
| 138 | 141 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,27 @@ |
| 0 |
+package daemon |
|
| 1 |
+ |
|
| 2 |
+import ( |
|
| 3 |
+ "github.com/docker/docker/engine" |
|
| 4 |
+) |
|
| 5 |
+ |
|
| 6 |
+func (daemon *Daemon) ContainerRestart(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 err := container.Restart(int(t)); err != nil {
|
|
| 19 |
+ return job.Errorf("Cannot restart container %s: %s\n", name, err)
|
|
| 20 |
+ } |
|
| 21 |
+ job.Eng.Job("log", "restart", container.ID, daemon.Repositories().ImageName(container.Image)).Run()
|
|
| 22 |
+ } else {
|
|
| 23 |
+ return job.Errorf("No such container: %s\n", name)
|
|
| 24 |
+ } |
|
| 25 |
+ return engine.StatusOK |
|
| 26 |
+} |
| ... | ... |
@@ -261,28 +261,6 @@ func (srv *Server) ContainerCommit(job *engine.Job) engine.Status {
|
| 261 | 261 |
return engine.StatusOK |
| 262 | 262 |
} |
| 263 | 263 |
|
| 264 |
-func (srv *Server) ContainerRestart(job *engine.Job) engine.Status {
|
|
| 265 |
- if len(job.Args) != 1 {
|
|
| 266 |
- return job.Errorf("Usage: %s CONTAINER\n", job.Name)
|
|
| 267 |
- } |
|
| 268 |
- var ( |
|
| 269 |
- name = job.Args[0] |
|
| 270 |
- t = 10 |
|
| 271 |
- ) |
|
| 272 |
- if job.EnvExists("t") {
|
|
| 273 |
- t = job.GetenvInt("t")
|
|
| 274 |
- } |
|
| 275 |
- if container := srv.daemon.Get(name); container != nil {
|
|
| 276 |
- if err := container.Restart(int(t)); err != nil {
|
|
| 277 |
- return job.Errorf("Cannot restart container %s: %s\n", name, err)
|
|
| 278 |
- } |
|
| 279 |
- srv.LogEvent("restart", container.ID, srv.daemon.Repositories().ImageName(container.Image))
|
|
| 280 |
- } else {
|
|
| 281 |
- return job.Errorf("No such container: %s\n", name)
|
|
| 282 |
- } |
|
| 283 |
- return engine.StatusOK |
|
| 284 |
-} |
|
| 285 |
- |
|
| 286 | 264 |
func (srv *Server) ContainerDestroy(job *engine.Job) engine.Status {
|
| 287 | 265 |
if len(job.Args) != 1 {
|
| 288 | 266 |
return job.Errorf("Not enough arguments. Usage: %s CONTAINER\n", 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 |
- "restart": srv.ContainerRestart, |
|
| 90 | 89 |
"wait": srv.ContainerWait, |
| 91 | 90 |
"tag": srv.ImageTag, // FIXME merge with "image_tag" |
| 92 | 91 |
"resize": srv.ContainerResize, |