From 18d01f19e4de406013ed461870130d9f1b74e295 Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Mon, 7 Dec 2015 12:38:31 -0800 Subject: [PATCH] Fix compilation for all tags Signed-off-by: Alexander Morozov --- ctr/start.go | 4 ++-- runc/runc.go | 21 +++++++++++++++++++++ supervisor_runc.go | 12 ++++++++++++ supervisor_unsupported.go | 7 ++++--- 4 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 supervisor_runc.go diff --git a/ctr/start.go b/ctr/start.go index 9cef47a..4ded310 100644 --- a/ctr/start.go +++ b/ctr/start.go @@ -63,7 +63,7 @@ var StartCommand = cli.Command{ fatal("container id cannot be empty", 1) } c := v1.NewClient(context.GlobalString("addr")) - if err := c.Start(id, path); err != nil { + if err := c.Start(id, path, ""); err != nil { fatal(err.Error(), 1) } }, @@ -89,7 +89,7 @@ var KillCommand = cli.Command{ fatal("container id cannot be empty", 1) } c := v1.NewClient(context.GlobalString("addr")) - if err := c.Signal(id, context.Int("pid"), context.Int("signal")); err != nil { + if err := c.SignalProcess(id, context.Int("pid"), context.Int("signal")); err != nil { fatal(err.Error(), 1) } }, diff --git a/runc/runc.go b/runc/runc.go index 198f66f..967ddc9 100644 --- a/runc/runc.go +++ b/runc/runc.go @@ -4,6 +4,7 @@ package runc import ( "encoding/json" + "errors" "io/ioutil" "os" "os/exec" @@ -86,6 +87,26 @@ func (c *runcContainer) Pause() error { return c.newCommand("pause").Run() } +// TODO: pass arguments +func (c *runcContainer) Checkpoint(runtime.Checkpoint) error { + return c.newCommand("checkpoint").Run() +} + +// TODO: pass arguments +func (c *runcContainer) Restore(cp string) error { + return c.newCommand("restore").Run() +} + +// TODO: pass arguments +func (c *runcContainer) DeleteCheckpoint(cp string) error { + return errors.New("not implemented") +} + +// TODO: implement in runc +func (c *runcContainer) Checkpoints() ([]runtime.Checkpoint, error) { + return nil, errors.New("not implemented") +} + func (c *runcContainer) newCommand(args ...string) *exec.Cmd { cmd := exec.Command("runc", append([]string{"--root", c.stateDir, "--id", c.id}, args...)...) cmd.Dir = c.path diff --git a/supervisor_runc.go b/supervisor_runc.go new file mode 100644 index 0000000..4f47411 --- /dev/null +++ b/supervisor_runc.go @@ -0,0 +1,12 @@ +// +build runc + +package containerd + +import ( + "github.com/docker/containerd/runc" + "github.com/docker/containerd/runtime" +) + +func newRuntime(stateDir string) (runtime.Runtime, error) { + return runc.NewRuntime(stateDir) +} diff --git a/supervisor_unsupported.go b/supervisor_unsupported.go index 11ba385..3f5a322 100644 --- a/supervisor_unsupported.go +++ b/supervisor_unsupported.go @@ -1,12 +1,13 @@ -// +build !libcontainer +// +build !libcontainer,!runc package containerd import ( - "github.com/docker/containerd/runc" + "errors" + "github.com/docker/containerd/runtime" ) func newRuntime(stateDir string) (runtime.Runtime, error) { - return runc.NewRuntime(stateDir) + return nil, errors.New("unsupported platform") }