Skip to content

Commit 2791165

Browse files
committed
Update checkpoint/restore to match changes in latest docker.
Docker-DCO-1.1-Signed-off-by: Ross Boucher <[email protected]> (github: boucher)
1 parent 6befec5 commit 2791165

File tree

10 files changed

+30
-46
lines changed

10 files changed

+30
-46
lines changed

api/client/checkpoint.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ package client
55
import (
66
"fmt"
77

8+
Cli "github.com/docker/docker/cli"
89
flag "github.com/docker/docker/pkg/mflag"
910
"github.com/docker/docker/runconfig"
1011
)
1112

1213
func (cli *DockerCli) CmdCheckpoint(args ...string) error {
13-
cmd := cli.Subcmd("checkpoint", []string{"CONTAINER [CONTAINER...]"}, "Checkpoint one or more running containers", true)
14+
cmd := Cli.Subcmd("checkpoint", []string{"CONTAINER [CONTAINER...]"}, "Checkpoint one or more running containers", true)
1415
cmd.Require(flag.Min, 1)
1516

1617
var (

api/client/restore.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ package client
55
import (
66
"fmt"
77

8+
Cli "github.com/docker/docker/cli"
89
flag "github.com/docker/docker/pkg/mflag"
910
"github.com/docker/docker/runconfig"
1011
)
1112

1213
func (cli *DockerCli) CmdRestore(args ...string) error {
13-
cmd := cli.Subcmd("restore", []string{"CONTAINER [CONTAINER...]"}, "Restore one or more checkpointed containers", true)
14+
cmd := Cli.Subcmd("restore", []string{"CONTAINER [CONTAINER...]"}, "Restore one or more checkpointed containers", true)
1415
cmd.Require(flag.Min, 1)
1516

1617
var (

api/server/server_experimental_unix.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ package server
55
import (
66
"encoding/json"
77
"fmt"
8-
"net/http"
98
"github.com/docker/docker/pkg/version"
109
"github.com/docker/docker/runconfig"
11-
)
10+
"net/http"
11+
)
1212

13-
func addExperimentalRoutes(s *Server, m map[string]map[string]HttpApiFunc) {
13+
func addExperimentalRoutes(s *Server, m map[string]map[string]HTTPAPIFunc) {
1414
m["POST"]["/containers/{name:.*}/checkpoint"] = s.postContainersCheckpoint
1515
m["POST"]["/containers/{name:.*}/restore"] = s.postContainersRestore
1616
}

api/server/server_stub.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
package server
44

5-
func addExperimentalRoutes(s *Server, m map[string]map[string]HttpApiFunc) {
5+
func addExperimentalRoutes(s *Server, m map[string]map[string]HTTPAPIFunc) {
66

77
}
88

api/types/types.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -228,16 +228,16 @@ type ExecStartCheck struct {
228228
// it's part of ContainerJSONBase and will return by "inspect" command
229229
type ContainerState struct {
230230
Running bool
231-
Paused bool
231+
Paused bool
232232
Checkpointed bool
233-
Restarting bool
234-
OOMKilled bool
235-
Dead bool
236-
Pid int
237-
ExitCode int
238-
Error string
239-
StartedAt string
240-
FinishedAt string
233+
Restarting bool
234+
OOMKilled bool
235+
Dead bool
236+
Pid int
237+
ExitCode int
238+
Error string
239+
StartedAt string
240+
FinishedAt string
241241
CheckpointedAt string `json:"-"`
242242
}
243243

daemon/execdriver/lxc/driver.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,11 +561,11 @@ func (d *Driver) Unpause(c *execdriver.Command) error {
561561
return err
562562
}
563563

564-
func (d *driver) Checkpoint(c *execdriver.Command, opts *runconfig.CriuConfig) error {
564+
func (d *Driver) Checkpoint(c *execdriver.Command, opts *runconfig.CriuConfig) error {
565565
return fmt.Errorf("Checkpointing lxc containers not supported yet\n")
566566
}
567567

568-
func (d *driver) Restore(c *execdriver.Command, pipes *execdriver.Pipes, restoreCallback execdriver.RestoreCallback, opts *runconfig.CriuConfig, forceRestore bool) (execdriver.ExitStatus, error) {
568+
func (d *Driver) Restore(c *execdriver.Command, pipes *execdriver.Pipes, restoreCallback execdriver.RestoreCallback, opts *runconfig.CriuConfig, forceRestore bool) (execdriver.ExitStatus, error) {
569569
return execdriver.ExitStatus{ExitCode: 0}, fmt.Errorf("Restoring lxc containers not supported yet\n")
570570
}
571571

daemon/execdriver/native/create.go

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -113,24 +113,6 @@ func generateIfaceName() (string, error) {
113113
return "", errors.New("Failed to find name for new interface")
114114
}
115115

116-
// Re-create the container type from the image that was saved during checkpoint.
117-
func (d *driver) createRestoreContainer(c *execdriver.Command, imageDir string) (*libcontainer.Config, error) {
118-
// Read the container.json.
119-
f1, err := os.Open(filepath.Join(imageDir, "container.json"))
120-
if err != nil {
121-
return nil, err
122-
}
123-
defer f1.Close()
124-
125-
var container *libcontainer.Config
126-
err = json.NewDecoder(f1).Decode(&container)
127-
if err != nil {
128-
return nil, err
129-
}
130-
131-
return container, nil
132-
}
133-
134116
func (d *Driver) createNetwork(container *configs.Config, c *execdriver.Command) error {
135117
if c.Network == nil {
136118
return nil

daemon/execdriver/native/driver.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ func libcontainerCriuOpts(runconfigOpts *runconfig.CriuConfig) *libcontainer.Cri
313313
}
314314
}
315315

316-
func (d *driver) Checkpoint(c *execdriver.Command, opts *runconfig.CriuConfig) error {
316+
func (d *Driver) Checkpoint(c *execdriver.Command, opts *runconfig.CriuConfig) error {
317317
active := d.activeContainers[c.ID]
318318
if active == nil {
319319
return fmt.Errorf("active container for %s does not exist", c.ID)
@@ -329,7 +329,7 @@ func (d *driver) Checkpoint(c *execdriver.Command, opts *runconfig.CriuConfig) e
329329
return nil
330330
}
331331

332-
func (d *driver) Restore(c *execdriver.Command, pipes *execdriver.Pipes, restoreCallback execdriver.RestoreCallback, opts *runconfig.CriuConfig, forceRestore bool) (execdriver.ExitStatus, error) {
332+
func (d *Driver) Restore(c *execdriver.Command, pipes *execdriver.Pipes, restoreCallback execdriver.RestoreCallback, opts *runconfig.CriuConfig, forceRestore bool) (execdriver.ExitStatus, error) {
333333
var (
334334
cont libcontainer.Container
335335
err error

daemon/inspect.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ func (daemon *Daemon) getInspectData(container *Container) (*types.ContainerJSON
4545
Running: container.State.Running,
4646
Paused: container.State.Paused,
4747
Checkpointed: container.State.Checkpointed,
48-
Restarting: container.State.Restarting,
49-
OOMKilled: container.State.OOMKilled,
50-
Dead: container.State.Dead,
51-
Pid: container.State.Pid,
52-
ExitCode: container.State.ExitCode,
53-
Error: container.State.Error,
54-
StartedAt: container.State.StartedAt.Format(time.RFC3339Nano),
55-
FinishedAt: container.State.FinishedAt.Format(time.RFC3339Nano),
48+
Restarting: container.State.Restarting,
49+
OOMKilled: container.State.OOMKilled,
50+
Dead: container.State.Dead,
51+
Pid: container.State.Pid,
52+
ExitCode: container.State.ExitCode,
53+
Error: container.State.Error,
54+
StartedAt: container.State.StartedAt.Format(time.RFC3339Nano),
55+
FinishedAt: container.State.FinishedAt.Format(time.RFC3339Nano),
5656
CheckpointedAt: container.State.CheckpointedAt.Format(time.RFC3339Nano),
5757
}
5858

docker/docker.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"fmt"
55
"os"
6+
"sort"
67

78
"github.com/Sirupsen/logrus"
89
"github.com/docker/docker/api/client"
@@ -35,7 +36,6 @@ func main() {
3536

3637
help := "\nCommands:\n"
3738

38-
// TODO(tiborvass): no need to sort if we ensure dockerCommands is sorted
3939
allCommands := append(dockerCommands, experimentalCommands...)
4040
sort.Sort(byName(allCommands))
4141

0 commit comments

Comments
 (0)