Persist pause state to disk to support container live restore

Signed-off-by: Lei Jitang <leijitang@huawei.com>
Upstream-commit: f4bbfc34ce1785863dcdea44c981f6532c5e2860
Component: engine
This commit is contained in:
Lei Jitang
2016-08-19 05:32:33 -04:00
parent cd9d633b0a
commit 165357a3a8
2 changed files with 6 additions and 1 deletions
-1
View File
@@ -210,7 +210,6 @@ func (s *State) SetExitCode(ec int) {
func (s *State) SetRunning(pid int, initial bool) {
s.error = ""
s.Running = true
s.Paused = false
s.Restarting = false
s.exitCode = 0
s.Pid = pid
+6
View File
@@ -99,11 +99,17 @@ func (daemon *Daemon) StateChanged(id string, e libcontainerd.StateInfo) error {
case libcontainerd.StatePause:
// Container is already locked in this case
c.Paused = true
if err := c.ToDisk(); err != nil {
return err
}
daemon.updateHealthMonitor(c)
daemon.LogContainerEvent(c, "pause")
case libcontainerd.StateResume:
// Container is already locked in this case
c.Paused = false
if err := c.ToDisk(); err != nil {
return err
}
daemon.updateHealthMonitor(c)
daemon.LogContainerEvent(c, "unpause")
}