|
@@ -79,6 +79,10 @@ func jobInitApi(job *engine.Job) engine.Status {
|
|
|
job.Error(err)
|
|
|
return engine.StatusErr
|
|
|
}
|
|
|
+ if err := job.Eng.Register("stop", srv.ContainerStop); err != nil {
|
|
|
+ job.Error(err)
|
|
|
+ return engine.StatusErr
|
|
|
+ }
|
|
|
if err := job.Eng.Register("start", srv.ContainerStart); err != nil {
|
|
|
job.Error(err)
|
|
|
return engine.StatusErr
|
|
@@ -1727,16 +1731,27 @@ func (srv *Server) ContainerStart(job *engine.Job) engine.Status {
|
|
|
return engine.StatusOK
|
|
|
}
|
|
|
|
|
|
-func (srv *Server) ContainerStop(name string, t int) error {
|
|
|
+func (srv *Server) ContainerStop(job *engine.Job) engine.Status {
|
|
|
+ if len(job.Args) != 1 {
|
|
|
+ job.Errorf("Usage: %s CONTAINER\n", job.Name)
|
|
|
+ return engine.StatusErr
|
|
|
+ }
|
|
|
+ name := job.Args[0]
|
|
|
+ t := job.GetenvInt("t")
|
|
|
+ if t == -1 {
|
|
|
+ t = 10
|
|
|
+ }
|
|
|
if container := srv.runtime.Get(name); container != nil {
|
|
|
- if err := container.Stop(t); err != nil {
|
|
|
- return fmt.Errorf("Cannot stop container %s: %s", name, err)
|
|
|
+ if err := container.Stop(int(t)); err != nil {
|
|
|
+ job.Errorf("Cannot stop container %s: %s\n", name, err)
|
|
|
+ return engine.StatusErr
|
|
|
}
|
|
|
srv.LogEvent("stop", container.ID, srv.runtime.repositories.ImageName(container.Image))
|
|
|
} else {
|
|
|
- return fmt.Errorf("No such container: %s", name)
|
|
|
+ job.Errorf("No such container: %s\n", name)
|
|
|
+ return engine.StatusErr
|
|
|
}
|
|
|
- return nil
|
|
|
+ return engine.StatusOK
|
|
|
}
|
|
|
|
|
|
func (srv *Server) ContainerWait(job *engine.Job) engine.Status {
|