From cdb1bf09462f8e50d95480c99cef76db6ea478fe Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Fri, 12 Jan 2018 22:35:24 +0000 Subject: [PATCH] Use new cio package. Signed-off-by: Lantao Liu --- pkg/server/io/container_io.go | 10 ++-------- pkg/server/io/exec_io.go | 10 ++-------- pkg/server/io/helpers.go | 20 ++++++-------------- 3 files changed, 10 insertions(+), 30 deletions(-) diff --git a/pkg/server/io/container_io.go b/pkg/server/io/container_io.go index 65c500bbe..0c7504b9b 100644 --- a/pkg/server/io/container_io.go +++ b/pkg/server/io/container_io.go @@ -19,7 +19,6 @@ package io import ( "errors" "io" - "os" "strings" "sync" @@ -116,12 +115,7 @@ func NewContainerIO(id string, opts ...ContainerIOOpts) (_ *ContainerIO, err err // Config returns io config. func (c *ContainerIO) Config() cio.Config { - return cio.Config{ - Terminal: c.fifos.Terminal, - Stdin: c.fifos.In, - Stdout: c.fifos.Out, - Stderr: c.fifos.Err, - } + return c.fifos.Config } // Pipe creates container fifos and pipe container output @@ -239,7 +233,7 @@ func (c *ContainerIO) Wait() { func (c *ContainerIO) Close() error { c.closer.Close() if c.fifos != nil { - return os.RemoveAll(c.fifos.Dir) + return c.fifos.Close() } return nil } diff --git a/pkg/server/io/exec_io.go b/pkg/server/io/exec_io.go index fc02636ed..72c36b6bc 100644 --- a/pkg/server/io/exec_io.go +++ b/pkg/server/io/exec_io.go @@ -18,7 +18,6 @@ package io import ( "io" - "os" "sync" "github.com/containerd/containerd/cio" @@ -57,12 +56,7 @@ func NewExecIO(id, root string, tty, stdin bool) (*ExecIO, error) { // Config returns io config. func (e *ExecIO) Config() cio.Config { - return cio.Config{ - Terminal: e.fifos.Terminal, - Stdin: e.fifos.In, - Stdout: e.fifos.Out, - Stderr: e.fifos.Err, - } + return e.fifos.Config } // Attach attaches exec stdio. The logic is similar with container io attach. @@ -146,7 +140,7 @@ func (e *ExecIO) Close() error { e.closer.Close() } if e.fifos != nil { - return os.RemoveAll(e.fifos.Dir) + return e.fifos.Close() } return nil } diff --git a/pkg/server/io/helpers.go b/pkg/server/io/helpers.go index e0ddc2de5..221b96e38 100644 --- a/pkg/server/io/helpers.go +++ b/pkg/server/io/helpers.go @@ -18,7 +18,6 @@ package io import ( "io" - "io/ioutil" "os" "path/filepath" "sync" @@ -80,19 +79,12 @@ func newFifos(root, id string, tty, stdin bool) (*cio.FIFOSet, error) { if err := os.MkdirAll(root, 0700); err != nil { return nil, err } - dir, err := ioutil.TempDir(root, "") + fifos, err := cio.NewFIFOSetInDir(root, id, tty) if err != nil { return nil, err } - fifos := &cio.FIFOSet{ - Dir: dir, - In: filepath.Join(dir, id+"-stdin"), - Out: filepath.Join(dir, id+"-stdout"), - Err: filepath.Join(dir, id+"-stderr"), - Terminal: tty, - } if !stdin { - fifos.In = "" + fifos.Stdin = "" } return fifos, nil } @@ -120,21 +112,21 @@ func newStdioPipes(fifos *cio.FIFOSet) (_ *stdioPipes, _ *wgCloser, err error) { } }() - if fifos.In != "" { - if f, err = fifo.OpenFifo(ctx, fifos.In, syscall.O_WRONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil { + if fifos.Stdin != "" { + if f, err = fifo.OpenFifo(ctx, fifos.Stdin, syscall.O_WRONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil { return nil, nil, err } p.stdin = f set = append(set, f) } - if f, err = fifo.OpenFifo(ctx, fifos.Out, syscall.O_RDONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil { + if f, err = fifo.OpenFifo(ctx, fifos.Stdout, syscall.O_RDONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil { return nil, nil, err } p.stdout = f set = append(set, f) - if f, err = fifo.OpenFifo(ctx, fifos.Err, syscall.O_RDONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil { + if f, err = fifo.OpenFifo(ctx, fifos.Stderr, syscall.O_RDONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil { return nil, nil, err } p.stderr = f